Experimenting with different inheritance patterns