refactored Var VarDef; throw missing vs illegal
[wip] cUseOT is named; refact scope to sharedptr
Not global useOT