A XML pointer-like scheme for addressing elements in a ZZ space. Neighbours of a cell (cell).n(d.2,+).n(d.1,-) Headcell of a cell (cell).negcell(d.2).poscell(d.1) Searching for an intersection of two ranks (the cell itself won't count so you can repeat it and get all crossings) (cell).intersect(d.2,+, (cell), d.1,-) this is useful e.g. for searching clones: (cell).intersect(d.1,+, Color, d.clone, +).n(d.2,+) to find the next cell giving the color through a clone. XXX textual searching? There should be a way to detect changes not only to cells but also expressions like this. Implementing settings would suddenly be a lot easier.