just class hierarchy, no correct implementation