just some refactoring to isolate the asynchronous-reader implementation

from the rest of the messaging routines