Refactored WaypointObject