Add BookingFlow, reorganize code