refactor(client) add constructor