added IsCanonical