This is first commit. It is all working code with requrement.