Started splitting classes and functions into their own files to keep everything clean and tidy