[IMP-dev] Different layers of functionality in IMP