separated core and service