Refactored to provide for Groups/Roles

Refactored to provide for Groups/Roles to be used for authorization