add chap5 still have bugs