all io functions should work