User module can also be refactored