Javadoc improvements.
Use more meaningful error messages, method and variable names.
Extract requirements check as separate verification step.
Javadoc improvements.
Request listIterator instead of array. More convenient for subclassing.