Aye, see, I've already got a mechanism to distinguish the workings from the interface, and they're called... interfaces

Turns out AWT is also not so hard to ditch

Cas

How about everything is protected by default and ONLY the methods that implement an interface are public. No other methods are allowed to be public. So if you want to add a public method you have to extend or add an interface that your class implements.
I personally thing protected access is strange the way Java did it. Allowing any class in the same package to access protected fields seems lame. There is no way to have fields accessible only to the class and other classes that subclass it *without* allowing access to all classes in the same package.