each uses future to provide result