refactoring code and added new test cases
second round of refactoring
creating reporting service
fit and finish
final touches-1
finaltouch2