add explanations for functions