This makes this class a mixin technically.

In fact, I can't even find where `get_role` is defined. Is there a reason why we can't replace it with `role = self.role`?