select() and unwrap() now take arbitrary actions instead of channels