addresses lack of failure message
adds support for specifying fields

provide ability to guarantee that the fields named in args are not null
before proceeding
improves documentation
inlines local variable from field
stops unneeded warnings