basic i/o template