Rewriting evaluate to be more modular and not modify the given expression