more progress. pass message fields into the handler functions. probably some other stuff