finish Service refactor