I'm going to redo all of this someday. (Message put here 12/14/18)