refactored services and impls
more refactoring of the services
implemented add training