Fullfilled all TODOs and refactored User class