Added fair amount of comments