This is a better way to support permissions I think