introducting a differencer algorithm, char-canvas and a char-table