It often happens that developers use words Refactoring and Redesign interchangeably. Why? I think that is because in both cases we are ending with the same result - code that is changed, but it does exactly the same thing as it was capable of doing at the beginning of the process.
Yet, in my opinion those words are not exact synonymous and before we will start to refactor the code it is good to know the difference.