Use less confusing names for `for in`
Fix scope issues with nested calls and protected variables