added unique username and email. passed tests. refactored a little