Added user and role structures for cleaner validation.