improved futures api