Added a LOT of comments