seems to be working
need to find out why forAllAsync works but forEachAsync doesn't
newer vesion