split core and primitives
split primitives