protocolize internal cursor interaction
ICloneable values get a free ride