added large amount of comments