shouldn't check if ```future != null```?