Changed so that diagnostics act similarly to arguments in that the simulation has one, and it can be easily recursively searched. Added some tests. More to come