Redo client implementation more low-level
Client query returns future, not coroutine