Refactor waterfall