attempting to build promises from futures more efficiently