Use generics to specify Node types