Added totally unnecessary comments to help myself understand