finished all explanations, added some diagrams