refactoring desktop