added Future and tests