doing callbacks inside of loops is dangerous. this will likely result in innerCb getting called multiple times