valid move checking works