generates User model