Intelligent code refactoring