block: add I/o