Moved authentication to a DI pattern
Created nice permissions layer for API