details in lecture 21