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);