improved io docs