Separate exposed APIs and internal headers