def METHOD_NAME(self, message_hash):
    if message_hash not in self.futures or self.futures[message_hash].cancelled():
        self.futures[message_hash] = Future()
    METHOD_NAME = self.futures[message_hash]
    if message_hash in self.rejections:
        METHOD_NAME.reject(self.rejections[message_hash])
        del self.rejections[message_hash]
    return METHOD_NAME