I know the idea here was to mirror the C# implementation, but reading through this, I think we should considering making pythonic changes. Particularly, I don't see a need for this class to exist at all. All of this functionality can exist in `Package`. There's no code re-use, just extra abstraction as far as I can see.