got applyMoveSeparate to work, puzzle functions all completed now starting on a* alg