added comments. I try to be a good citizen. But honestly: I feel like an idiot commenting methods that pretty much have self-explaining names.