add future itf to replace the std future