Maybe calculate the output channels array in the constructor instead of on every page.  Also maybe calculate the types in the constructor (will require having the input types passed from the `LocalExecutionPlanner`)