Improve solver to add early pruning techniques
create wraps
tighter step limits with solver
remove duplicate code