refactored a bunch of the code added table classes updated the autoloader and added test directory