added BaseEstimator class