Layering and eliding requires a change to the implementation of connections. To do layering, connections need to be triples {direction, sender, receiver}, but, the usual implementation of connections is as doubles {sender, receiver}. This is trivial to implement, but requires a change in mindset. My guess is that thinking in terms of "infinite canvases" blinds one to seeing this minor extension to connections. [Likewise, the code to route messages needs to take direction into account, requiring 4 slightly different methods].