pure futures implementation in io