Added: User: hasEmptyPassword so the password getter is not exposed, added also User: initialize message. Modified User: matchUsername:matchPassword and UsersManager: doLogin:password. Authentication seems to work even though the algoritm looks horrible. It would be nice to rewrite it using exceptions (if we have time).