updated up to lecture 23