Added documentation for every functions