Add: User service & some refactoring