huge datapaths refactoring, simplifying/unifying algorithms, using visitors instead of manual pattern matching
completely changed representation of negative regions