Started refactoring of permissions and annotations. We can now decorate multiple functions of an object at once. More cleanup is necessary to extract the functionality in smaller parts and to be in its own helper module