switched to using keystates and added simultaneous moves