added log messages at each exit point added tests added reject_type option (defer -vs- deny) added named argument parsing