do not include internal.h in public header files