 I've been using the LS program to see which node modules are installed, typing LS, node modules. Now, while it's effective in seeing what's installed, it doesn't tell me why it's installed. An NPM provides us with a command that allows us to see why. That command is NPM LS. Now, unlike the flat output that I see of directories, NPM LS actually shows me that the only direct dependency that I have is Cowsay. But it has a dependency on getStandIn, Inoptimist, and StringWidth. And those have dependencies as well. All of these dependencies need to be available for Cowsay to do the job that it does. And therefore, they have to be downloaded to do that. Now, just for giggles, let's see what else NPM LS can do. We'll do so by running the NPM LS command with the h flag. This doesn't run the command, it just gives us more information on what we can do with this command. So, this command can take a package name. So, that's pretty cool. And it responds to different aliases, like List, LA, and LL. So, let's use NPM List and check out the package Minimist. And we can see from this graph that Minimist is included because it is a dependency of Optimist, which is a dependency of Cowsay. NPM LS is incredibly helpful in determining how certain packages got into your node modules and what they're related to.