initialize the core first