Async work in progress.
Modified library to operate asyncronously.