please add javadoc on the constructor to explain the mechanics behind this.