add basic message handling infrastructure