#13, add better move validations