Refactored quite a bit, added a pruner for priority moves which should optimise the solution finding process greatly