Added autoloader and namespacing