Added comments before I forget what everything does