def sayHelloAsync(self, name="Not given", message="nothing"):
        """
        Implementation of IHello.sayHelloAsync.
        This method will be executed via some thread, and the remote caller
        will not block.
        This method should return either a String result (since the return type
        of IHello.sayHelloAsync is CompletableFuture<String>, OR a Future that
        returns a python string.  In this case, it returns the string directly.
        """
        print(
            "Python.sayHelloAsync called by: {0} "
            "with message: '{1}'".format(name, message)
        )
        return (
            "PythonAsync says: Howdy {0} "
            "that's a nice runtime you got there".format(name)
        )
Implementation of IHello.sayHelloAsync.
        This method will be executed via some thread, and the remote caller
        will not block.
        This method should return either a String result (since the return type
        of IHello.sayHelloAsync is CompletableFuture<String>, OR a Future that
        returns a python string.  In this case, it returns the string directly.