Currently each node type implements its own unique `update_state!` and `update_params!` functions. These could be handled automatically instead, perhaps with a macro...