finished up semantics