added better explanations