moved to node implementation