Better naming.
Further factoring.
Rework waypoint types.