Added a large amount of commenting