This is actually the "async" interface.