replaced Future with FutureResult