reworked to use more subclasses to test Jackson