Some work on event formatting.

Get properties by reflection. Use Optional as things can fail.