Initial role implementation

:+1: