seperated some classes into their own files
moved some files around