refactored FutureHandler