add transducers impl