Better explanation and some minor changes.