lecture: lecture 18: finish IOMcn