add vector I/O