much work done on issue #1 adding underlying functionality to solver.