protected static int WidthOf(IList<RectangularStep> upstream)
{
if (upstream == null || upstream.Count == 0) throw new ArgumentException();
int width = upstream[0].Width;
if (!upstream.All(step => step.Width == width)) throw new ArgumentException();
return width;
}