Refactor breeze solvers by introducing an OptimizerBase