recursive inheritence test