Add autoloader and begin to think the architecture and namespaces to make it work easily