update movement mechanics