Break circular dependencies - Extract methods from oversized functions - Introduce dependency injection for testability