add semantics