new api based inheritance