Add javadoc
Implement addAll and refactor constructor to take advantage