Role refactor

Refactored the development branch into the role model