added documentation... should have been updating this as I programmed.