Refactor: NewXClient is XClient's constructor