funnel.c to port to the funnel