finish ch03-io