tightened up through the explanation of methods