don't automatically convert nodelists to arrays, this seems bad for performace