public Layout Build(Func <ILayout, bool> validate = null)
        {
            Layout layout = new Layout();

            layout.AddMachines(_machines);

            return((validate == null || validate(layout)) ? layout : null);
        }