Added a plenty of comments.