respond to PR feedback
- don't use ++ since result is a weird tuple
- remove confusing comment
- make introduced names private in each class
- move rewrite method with fancy signature to the companion obj