refactoring + adding services