new def checks validity of moves, needs work still