It is very easy right now to accidentally pass in the wrong parameter and initial conditions. We first work with the nw object to initialize a new state, then have to make a fresh NWState then call pflat on that. This exposes a ton of redundant state to the user. THis might be revisited most easily when we look at the initialization workflow again.