Adding Learn option and some Refactoring and javadoc
Updating Author in the Javadoc