Separate Engines into own namespace.
Separate getting a provider engine to its own method.
Start adding authorisation.
Fix authorization.