edit lecture: lecture 17: add StateIO