What a pain in the rump. So, you have: /subderived=/foo isa /derived=/foo isa /base=/foo So, some component calls /foo and because of the Resolver it means that you get /subderived=/foo, and because of the Compiler it means you get /subderived=/foo:main. Great! But if you call /foo from the top level, the wrapping chain makes it start with /base=/foo and then it expects you'll `call_next`. That was okay when there was the "main code" of the component which worked differently than methods: always acting base-to-derived. Methods work the other way, though, and now the method would get called on the most base and be sort of screwed. Now we eliminate the wrapping chain.