expr can be a function