Refactoring Program