add concat, length, retry; rename replay()->replay, merge->flatten