refactored roles