interface.js: variable renaming
nesting loop avoidance: object stack introduced