implemented sameValueAs