- Large refactoring of implementation
- FIXME: there is a lingering issue between postfix operators and parentheses