simplified io