#1045 refining distinction internal/external API