added comments because I'm lazy