Add core client implementation