update docs to show exception separately
run with warnings
add the ability to pass no arguments and get keys, descriptors, and values