add a note about what each list represents
make the ndims == 0 case more explicit with its own function