Added async.signal and did some minor cleanup