#8 - Optimization, javadoc and readme changes