added Promise.list