make use of semantic equality