Added explanation and more illustrations.