// it needs to know
// a) what the inherited types are
// b) what methods are available for each type, that include a reference to another type..
// it needs to know
// a) what the inherited types are
// b) what methods are available for each type, that include a reference to another type..