Completely refactor permissions
Using classes and multiple inheritance was overkill and confusing