Do we want to model the "real world"? This seems to hark back to that long-forgotten world of "animal-cat-dog" OO programming.