Refactored FutureOpt