Protocol-based example of trip, with additional function