modify FutureAllocation from interface to abstract class for hiding its
method that returns Allocation object. Add some comments for exported
APIs.