* [ ] Write description for functions * [ ] Write some broad descriptions for some sections of the code that might not be clear as-is.