should set __hash__ in TPayload to make it hashable in py3