Valid move checking, and moveagain checking