rework user.java