added User.java and complete authentication