first draft of DiffEngineBuilder, CompositeDescendingStrategy