more explanations added