update client version, refactor client and provider