Adjust PImpl, refactor to own header