His 1999 book "Refactoring" popularised the practice of code refactoring. Integrated development environments (IDE) add further functionality, such as debugging, refactoring, and unit testing. Others prefer more specialized tools providing debugging, refactoring, etc. Compiler Platform is used for refactoring and IntelliSense. Test automation also supports continued refactoring required by iterative software development. Feature APIs allow source code tool developers to do code refactoring and fixes. Techniques like Code refactoring can enhance readability. The process of code refactoring can result in stepwise reductions in software entropy. This allows for advanced refactoring techniques and code analysis. Further code refactoring activities may require additional effort to regain this knowledge. The company's first product was IntelliJ Renamer, a tool for code refactoring in Java. Courage enables developers to feel comfortable with refactoring their code when necessary. It is thus enabling developers to create refactoring and diagnostics tools. Then the memory hierarchy will be assessed during code refactoring.