added explanation and some typo corrections