[WFCORE-126] First simplify the Builder / Parent interfaces and switch to abstract classes using generics.