Moved SingleResultFutureCallback to protocol