added validMove