break appart core and api