upgrade to semantic