you should put some javadocs to explain the goal of this class and why it is package protected