An attempt to simplify

Added dontThrow flag.
Untested.