1) why hardcoded type?
2) make a base class (that would serve for other diagram types as well) and a base base class (e.g. for text editor). However all will be working with nodes
3) what happens if subscribe error?