more work on gearbox, start splitting off submodules so we can write test suites to exercise all the edge cases