introduce type parameters to ModelEstimator