Segregate data in symbolic rewriting

**please review**
At a high level, I've discussed extensively with Andrei and Yilong. You are right about those fields, they can be final. Still, lack of mutability annotations is a lesser worry in this code.