cPickle is a faster copier than deepcopy...
TODO: undo stack!