add AbstractUser call and User class