minor changes, added explanations