all magic happens in touchmove