Restructure entire package, split functionality into multiple modules
Hopefully this leads to looser coupling, and each module only has a single responsibility. This should reflect in users only importing the functionality they need. e.g., if a user only wants the metadata file parsing, without the trigger function, they should be able to do that.