Add username field and self authenticate method in user model