lecture: lecture 12: add recursive