adapt to parent abstract class - changed interface