major estimator refactor