'Structural equality of models.
Args:
other (HasProps) : the other instance to compare to
Returns:
True, if properties are structurally equal, otherwise False'

def equals(self, other):

    if (not isinstance(other, self.__class__)):
        return False
    else:
        return (self.properties_with_values() == other.properties_with_values())
