I intend to do some further refactoring of this module and break it up into some smaller modules.  I also intend to reduce the amount of "boilerplate" that needs to be added to setup.py for all the features in here to work.