static > A varyBackgroundPlusBoxes(A s, int w, int h) { s = cloneThroughStructure(s); if (oneIn(10)) s.background = varyColor(s.background); else if (tossCoin()) replaceRandomElement(s.things, randomBoxWithColor(w, h)); else varyBoxWithColor(random(s.things), w, h); ret s; }