adding in wait method, this ensures that any further operations are only started once all previously added operations are complete