The goal of refactoring is to pay off technical debt.
Refactoring results in clean code and simple design.
Clean code = Simple code
Clean code passes all tests.
Clean code is obvious for other programmers.
Clean code does not contain duplication.
Clean code contains a minimum number of classes and other moving parts.
Clean code is easier and cheaper to maintain.