massive refactor, moving away from static class structure
Binary yet to be refactored; current specs passing