objects need to be hashable