Refactored Puppetry by splitting the monolithic single file (3500 lines) into separate modules. Also added thorough test coverage, which will make it easier to develop new features without breaking existing ones. I tested the new version manually, verified that the automated tests cover all the critical paths, and read through all of the test implementations. I also tested on older versions of bpy. The CI deployment job will also automatically run the tests against a bunch of old and new versions of Blender, before releasing to the users.