please add javadoc to those classes.
In particular write down the compatibility rules