This class is used intensively in many parts of the tool. Please add javadoc which explains the design decision and how to use it.