added the OptimizerMatrix interface