put node support in a separate module