'This makes __call__ support instance methods.'

def __get__(self, obj, objtype):

    wrapped_method = self.method_list[0][1]
    func = functools.wraps(wrapped_method)(functools.partial(self.__call__, obj))
    return func
