Async

Since you have already switched to 4.5.1, using async would be a good thing to do. Here's an implementation.