Reworked the ParamEst interface to calculate gradients seperately