Used AbstractFuture to reduce class size.