Discuss a scenario where you had to refactor a procedural script into a clean, maintainable object-oriented codebase.