Update documentation, explain why we manage our run loops and queues as we do in this app.