working out a strategy for async subsections of code