Refactor classes to better organize roles