template for readIO