expression parser - avoid extra level of indirection
remove deepcopy cruft