some explanations added.