more explanation for this section
no need this line