split controllers and services, fixed bugs