there is a race but sort of working with wait(future)