describing abstract internal API in comments