Broken up classes into their own files and namespaces