typos, added some explanations