modify project accordingly refactor soap client