Added tests & rebased the branch

 changed,rebased