added more robust isValidMove() func