With all of the abstractions and typings in the repo, a production release will need to look tidier than what we currently have. This will include - [ ] Code commenting for all functions - [ ] Organized declaration files for all of the interfaces and typings - [ ] Reviewing the structure of our functions and whether our abstractions need to be reorganized.