equals accepts Object. Potential for class cast exception here? Perhaps check if o if assignable to Identifiable?