Solution 06 is quite good (maybe perfect) from the perspective of binary compatibility. For a while I thought I am going to give up, however then I noticed that there is an added overloaded method. With proper parameters this can cause the previously OK source to become uncompilable.