semantics updated (complete?)