Initial Solver solution. Still some bugs and debugging to do.