Renamed AlreadyExistsException to AlreadyHasRoleException
Improved exception message
Added Role object to simplify how roles are handled