Added a bunch of comments explaining things for Johnny. Hope they help :)