std::auto_ptr is added, pimpl is improved.