user model and authentication skeleton