start implementation of inheritance chain fold