add dynamic waterfall