substitute movement functions