Refactor NodesList as a component and defer PropType checking to the most local place