implement Node