length shouldn't add 1 for NIL