Moved code to Factories
Implemented plugin system with pluginLocator
Moved autoloader to separate file