I want to add my support for the idea of being able to run CCleaner before defrag (in fact I was going to suggest it myself), but the suggested user interface isn't sufficient.
The reason for running CCleaner first are both the make the defrag run faster (no need to defrag the files that you deleted), and to make it more effective (the files you actually use will be placed closer together, not separated by "junk" files that should be deleted.
The reason the suggested user interface, the addition to the drop down menu, is not sufficient is that it requires human intervention and thus wouldn't work with defrag calls that are the result of regularly scheduled defrags, i.e. those invoked by the automatic scheduling function. So, while the addition to the drop down menu would work for manual invocations of Defraggler and might be the best way of handling those, there should be a method chosen to invoke CCleaner that you can have run without requiring mouse clicks, etc. There are several ways this could be done, and I don't have a strong opinion on which way is best.
An alternative that would satisfy my requirements in this area is to build the automatic scheduling function into CCleaner. Then I could just have it scheduled a few minutes before the scheduled Defraggler run.
Also, as to whether CClearner should be "built-in" to Defragler, or the standard CCleaner should be called by Defragler is a choice best left to the developer. We should only care that it works, not what mechanism is used "under the covers" to make it work.
Thanks for your attention and for continually improving your products.