lots of work on expressions