chain; flatten revisited; "of"

good point, we shoud probably support array-like objects