@cbae: Well when I say code duplication, I mean where the API is used (the consumer of the API), not so much inside the wrapper/subclass or whatever.

Your solution is not bad at all (and in an officially released product might be the better choice). I just think the last solution I mention would most likely result in less coding required. I don't need to pass any version info etc (so I can keep the exact same method signature), and I don't have to do anything to the Api10 methods other than simply copy/pasting each one and tweaking one of its attributes.