Added optional arguments to waterfall to be passed to the first function