Use delayed initialization with subgraphs so that they're not run when just instantiating them to get their ports