Major redesign of async core. Needs refactoring.