don't use object identity