Add validation to User, expand tests