Revert "Revert "Refactors async waterfall""

This reverts commit 503e8517cf4c910579b05a07e5e9292bb8d8953f.