add pimpl utility class