Re-factoring for all components done

We have maintained an extra branch called "development" where we maintain all are module updates/commits and this pull request is for the final assignment done.