You learn nothing if you do not refactor your code. Refactoring makes you and your code better. Refactoring a public code may be even more effective as you may be judged.
Bad Code Smells
In the book Refactoring - Improving the Design of Existing Code, Martin Fowler quoted Kent Beck's