Commenting and DRYing, works now