Add CX implementation with tests