added commenting to better understand the code
added more comments to make sense out of this project