added some explanations and pictures.