added autoloading and namespaces