make compose return a transducer
add mapcat