simple future option, needs callback