Is this class worth 1) moving to its own separate file (I often notice things by filename when getting familiar with a project) and/or 2) commenting a bit at the top of this so it's clear why the separation exists between `App` and `InternalApp`? Seems potentially confusing otherwise to future newbies in the codebase.