I just added a lot of comments. Should not change any operations