I will try to refactor this in the next pull request. While I did copy code from ```SymbolicRewriter``` as a starter, I modified a lot of code. So I guess I wouldn't be able to extract a lot common code except for the interface.

@andreistefanescu what are the other class?