added explanation for methods