Moved the require out of the function
Made the version mismatch error more clear
Proxied the module methods and added a SchemaStore
Added the 'application' fake module
Added manual dependencies
Clarified comment
Moved the User to a module