Did some refactoring, going to open up a new branch and start essentially from scratch