moved the various solve function out of decomposition algorithms and into a dedicated DecompositionSolver class