more pimpl refator