included io features for problem 8