Waypoint object refactor

Should be QA tested before merging, otherwise bugs at own risk.