Refactor Waypoint