join node implementation