separate core module