refactor client using singleton pattern
Merge remote-tracking branch 'remotes/github-go-box/master'