Adding some flexibility to funnel.rb but need to add further abstraction