added comments for explanations