added exception argument to enforce()