Added Async support. Replaced the first instance of shittiness with async.