initial commit of classes and files for refactoring