performance improvement - avoid copying the expression stack
experimenting with slightly different thread waiting semantics
avoid string copies when calling setValue