Support writing needed extension types

keeping constants inside and interface is a Java idiom. Basically it cuts down the number of times you need to type "public" and it's also a container with no executable code.