Mti submission inheritance

This will be a huge branch, much refactoring. Will want to proceed from this branch, even if I ended up going back to abstract base class for some reason.