implementation SuperType and SubType