protected virtual object CreateChildItem(Type type, IExecuteStrategy executeStrategy, object previousItem) { if (executeStrategy == null) { throw new ArgumentNullException(nameof(executeStrategy)); } return executeStrategy.CreateWith(type); }