Added lot of comments