* Revised to C++.