This looks easier than it is in practice...
 
 
-  For each new body type added, you must find and change all locations where a type-specific decision is made. 
-  In a large package, these may be hundreds of locations in a large number of different files. 
-  You must get them all, or you have a nice little bug.
-  You can easily introduce new bugs because you are forced to change existing, debugged (and potentially certified) code.