+ add __hash__ method