Added validation annotations to the User class
Interface describing how to load users from the data store