add support for arrays. move accumulator into the client module and return deferred items from enumerate call.