fix binding and recursion in destructuring