some extended functions that act on expressions (tested)