Taking a step back, to use the delay/apply async to abstract the context