Refactoring

Improved most of the codes found here, applying design patterns and best
practices for performance improvement and scalability issues.

Updated design documents and descriptions in Readme file