New Code and async

Bringing in new code, fixing blocking with listener by using async.