I think this class should be an interface that is implemented by a JSO, from the way it is used later on it can not be a pure Java Object (originates in JS)