redoing node implementation