More javadocs, better code, more robust and flexible.
Merge remote-tracking branch 'origin/master'