added a shitton of comments