I've just discovered the MASON framework and have started writing my first simulation. I have constructed a grid of nodes (held in a SparseGrid2D) and connected them in a Network. Now what I'd like to do is allow nodes to send packages to each other along the edges in the network, and I'm thinking about how best to accomplish this. I want the time it takes for a package to traverse an edge to be proportional to the edge's weight (held as the Edge's info Object). So far what I've come up with is a class to represent the package and a Steppable that counts down time for the package. When the package figures it has arrived, it stops the corresponding Stoppable and then delivers itself to the receiving node. This requires that the sending node have access to the SimState (so it can schedule the Steppable and hand the Stoppable to the package). All this entangled knowledge of the sim feels inelegant, though. Is there a cleaner way to do this? I'd kind of like to be able to have the originating node construct the package and hand it off to the edge, which would deal with keeping track of packages en route and delivering the packages to the node at the other end.