code: function cloneIt2(o) {
  	let keys = Object.keys(o);
  	let current = o;
  	const acc = {};
  	let currentAcc = acc;
  
  	let i = 0;
  	let iMax = keys.length + 1;
  	let previous = [];
  	let activeKey = [];
  
  	for (; i < iMax; i++) {
  		if (i === iMax - 1) {
  			if (!previous.length) {
  				break;
  			}
  
  			const prev = previous.pop();
  			activeKey.pop();
  
  			i = prev.i;
  			iMax = prev.iMax;
  			keys = prev.keys;
  
  			let j = 0;
  			const jMax = activeKey.length;
  			currentAcc = acc;
  			current = o;
  
  			for (; j < jMax; j++) {
  				currentAcc = currentAcc[activeKey[j]];
  				current = current[activeKey[j]];
  			}
  		} else if (typeof current[keys[i]] === 'object') {
  			currentAcc[keys[i]] = {};
  
  			previous.push({ i, iMax, keys });
  			activeKey.push(keys[i]);
  			current = current[keys[i]];
  			currentAcc = currentAcc[keys[i]];
  			i = -1;
  			keys = Object.keys(current);
  			iMax = keys.length + 1;
  		} else {
  			currentAcc[keys[i]] = current[keys[i]];
  		}
  	}
  
  	return acc;
  }
docs: Not finished -> Need array and date duplication