Redid a whole lot, in order to do as much asynchronous processing as
possible.