break out internal vs. api