some more explanations; indentation more consistent