Use `waterfall` to make the retrievals pseudo synchronous

Applies to #296

**NOTE**: This could use some verification to ensure it is being coded correctly. Works with standard testing on dev.