use async waterfall as a "main" method