Needs some refactoring and more tests, but this is working better than it did before!
Got Class-level inheritance working, making default parameter values easier to manage.