allow only valid moves