move function now uses pts and pieces rather than direct references to squares