TODO: C++ implementation.