Code refactoring and project updates.
Merge commit '49cff7c9923e52c494b880d65f98acc2a73a4193'

* commit '49cff7c9923e52c494b880d65f98acc2a73a4193':
  Readme updated.