start working on semantics