separate internal & public header