public static ProjectLayout Create(
            string name, IEnumerable <EpicMetadata> epics,
            int projectRowIndex, ILayoutDesigner designer)
        {
            var rows  = designer.Layout(epics);
            var cards = rows
                        .SelectMany((row, index) => row.Select(m => new EpicCard(m, index + projectRowIndex + 1)))
                        .ToArray();

            return(new ProjectLayout(name, cards, projectRowIndex, projectRowIndex + rows.Count));
        }