removed exception throw in destructor for vari to allow on-function-call-stack usage, plus tests