Prefer final fields if possible, avoid duplicate initialization with default values.
Adapt javadoc to changes in constructor.
 Initialize array lists with known size if available.