added documentation's explaination