Changes move() to constantly correct its course and use position instead of time. Adds onEdge().