Async

Merge in async functionality