Updates to Modules

Factory can be accessed externally allowing for the registering of
external modules