added a few code comments, need to add more