Attempted to further refactor into roles