Separating dynamics from expressions