Refactoring for both naming clarity and also to allow both forward and inverse transforms to be handled by the same locally-defined class hierarchy.