Added improved io