I'm thinking of getting rid of this semi-complicated inheritance hierarchy as part of the refactor in #1394. As part of that, we can figure out then what should be ported to bipy and what should stay in QIIME. Sound good?