add comments on how the program works for