better support for the different node types