refactoring into roles part 1