protected T Build <T>(List <string> names) => FactoryExtensions.Build <T>(names);
protected T Build <T>(Action <T> property) => FactoryExtensions.Build <T>(property);
protected T Build <T>() => FactoryExtensions.Build <T>();
protected T Build <T>(string name) => FactoryExtensions.Build <T>(name);
protected Result <T> BuildResult <T>(string name, List <Action <T> > properties) => new Result <T> { ResultObject = FactoryExtensions.Build <T>(name, properties) };
protected Result <T> BuildResult <T>(string name, params Action <T>[] properties) => new Result <T> { ResultObject = FactoryExtensions.Build <T>(name, properties.ToList()) };
protected Result <T> BuildResult <T>(Action <T> property) => new Result <T> { ResultObject = FactoryExtensions.Build <T>(property) };
protected Result <T> BuildResult <T>(string name, Action <T> property) => new Result <T> { ResultObject = FactoryExtensions.Build <T>(name, property) };
protected Result <T> BuildResult <T>() => new Result <T> { ResultObject = FactoryExtensions.Build <T>() };
protected Result <T> BuildResult <T>(string name) => new Result <T> { ResultObject = FactoryExtensions.Build <T>(name) };
protected T Build <T>(string name, params Action <T>[] properties) => FactoryExtensions.Build <T>(name, properties.ToList());
protected T Build <T>(string name, List <Action <T> > properties) => FactoryExtensions.Build <T>(name, properties);
protected T Build <T>(params Action <T>[] properties) => FactoryExtensions.Build <T>(properties.ToList());
protected T Build <T>(List <Action <T> > properties) => FactoryExtensions.Build <T>(properties);
protected T Build <T>(string name, Action <T> property) => FactoryExtensions.Build <T>(name, property);