V2 client implementation with ~80% tests passing