Generalize FactorEstimation() class