should move `|io|` up here, after {