more service refactoring