Composition can solve this particular case, but I would like to find out is this kind of hierarchy is possible in kotlin. I like to work at low level (often not building the Dog, but rather the "syntethizeSugarSpecies") so I'm bound to run at this again