Not all is rosy with this approach. There are one or two drawbacks that you may well need to consider. The first is that you might find that the tweaking could snowball and reach a point where it would have been simpler and more economical to start over than amend the generic application. Another drawback is that by using a generic system, no matter what the application, the interface will of necessity be the same. Depending on the requirement, this might be an advantage, especially if the users will be learning more than one system. But by producing a custom user interface, you can create a more focused front end that helps with the training system. Above all, whatever interface you finally adopt, it must be intuitive and easy to use because you should not add to the user burden with a large learning curve for the CBT system. You might also find that the functionality of a generic system does not get the job done because you’ll need to code to the lowest common denominator and try to outguess future requirements. The final consideration is that if you decide to produce custom CBT systems for your applications (or at least the large ones), you shouldn’t need to write a builder application. You will be producing all the details required as you write the system. As with most things in the IT industry, it’s a trade-off.