func (trip Trip) Prepare(preparers []interface{}) {
	for _, preparer := range preparers {
		switch p := preparer.(type) {
		case Mechanic:
			p.PrepareBicycles(trip.Bicycles)
		case TripCoordinator:
			p.BuyFood(trip.Customers)
		case Driver:
			p.GasUp(trip.Vehicle)
			p.FillWaterTank(trip.Vehicle)
		}
	}
}
/*
Trip preparation becomes more complicated
package main
import "fmt"
type Bicycle string
type Customer string
type Vehicle string
type Trip struct {
	Bicycles  []Bicycle
	Customers []Customer
	Vehicle   Vehicle
}