Add some internal doc.
Add null check.
Link to relevant javadoc.
Javadoc improvements + minor refactorings.
Put required option check in separate method.
Improve javadoc
Improve readme.