adds autoloader & refactoring