First off, the new functionality for connecting systems in ModelingToolkit is really powerful, awesome job!

I have a few issues with it that I can’t solve, however…

Suppose I have a ModelingToolkit ODESystem

```
od::ODESystem
```

To interactively access a state V(t) or a state W(t) in the subsystem sub, I need only write the following code

```
od.V
od.sub.W
```

How should I non-interactively access these variables? IE I want to build functions of the form

```
return_state(od, "V")
## gives od.V(t)
return substate(od, "sub", "W")
## gives od.sub.W(t) and not sub.W(t).
```

The difference between od.sub.W(t) and sub.W(t) seems to be important when connecting subsubsystems to other ODESystems.

Struggling to build such functions.

Thanks a lot in advance!

*Also, to be a bit more informative as to why this is useful, I have a system with states x_1(t) … x_N(t). These are a subset of all the system states, and their position in the system.states array is variable. I need a function which takes in an integer i, and returns od.x_i(t)*