deep hash introspection; this closes #26