Mechanism to split large contracts

I agree with that but contracts and libraries are technically the same thing. We can call them whatever we want :). Heck we can introduce a third keyword like “SubContract”/“Scope” etc. I am not good at naming things though.

I mean, it was not just a pedantic point about the naming :slight_smile: What I’m getting at is that what you propose looks like a radical change on the surface but if we just made a relatively small change to libraries to allow to have an immutable state variable that represents a single contract they’re associated with, we would already have 90% of this feature. Libraries have almost the exact semantics you’re proposing. The only things missing would be the neat syntax for nesting them in the contract body and declaring some of the contract’s state variables inside them.