@domenic:

Actually, it looks like this was done for usability. With an `Error` object, a simple `package.json does not have a valid "name" property` error looks like this:

![whoa](https://cloudup.com/cZZgZsG6L3N+)
WHOA!

When the callback is given a string, it looks like this:

![better](https://cloudup.com/clfr2Af0ICU+)
I'd rather see this as a casual user.

I realize that throwing an `Error` object is better practice; however, it doesn't look like the current infrastructure is there to support this. I also don't think there is value in refactoring the internals for this use-case.

Any strong objections to continuing without the `Error` object being thrown?