added set-expression function