equals: handle other implementations
fail on class targets
print error messages when failing