split large core.h include into seperate files