completed vector based I/O