make expanding steps flush multiple takes instead of just one
put exception handling logic in a transducer