adding hashcode and equals for the component metadata