added marshalling to Node