refactored authentication to use service object
refactored create user and dry'ed controller