Replaces deepExtend with one that works (better)
Always uses deepExtend to leave input args unchanged