Moved all user logic into a UserModule