Test Driven Development and Refactoring are powerful tools in the software development arsenal. With them you can add new code to systems and make existing code more maintainable. However, refactoring code without having tests in place can be hazardous. This workshop will present a collection of dependency breaking and test writing techniques that can be used to get existing code safely under test for refactoring and enhancement. These techniques can be used in conjunction with Test Driven Development to breathe new life into large existing code bases.