Fully functional basic IO