* Add flatten function and list class.
* Rename functions to be more descriptive.
* WIP moving flatten logic to classes.
* Finish moving flatten logic into classes, add tests.
* Simplify flattening, remove non-native dependency. Add more tests.
* Add defaults to simplify function call.
* Refactor two blocks into a function.
* Fixed broken test.
* Update classes based on PR feedback.
* Update module exports, remove obsolete file.