lots of work on waypoint protocol implementation