rework Relational.equals