start of node implementation