add support for distributeAll, call, apply iterating promises