refactoring

* Break the code up across multiple files based on some arbitrary criteria