I think this should inherit from ``BaseEstimator``, so that the routines are tested using an actual estimator framework.  Is there a reason not to do that?