wip; expression rewriting