my::base # base class my::extended_trunk # extends base my::branch_A # extends "extended_trunk" my::branch_B # Also extends "extended_trunk" my::base->configure(options); # Options change in all Classes my::extended_trunk->configure(options); # Options only change in extended_trunk and both branches my::branch_A->configure(options); # Options only change in branch_A