don't inline the huge cloneThis function