reduce*
actually returning promises
renamed dcell to pcell