refactor message objects. test message round-trip. try displaying tooltip.