all of calcMove implemented