I had a hard time figuring this out; please add some comments.