finished rewrite of solver and algorithm suite