#44 refactoring for user module