UML diagrams, object-oriented frameworks, and beautiful modular architecture are great things to develop, but sometimes you just need to make an application that real people can use. For me, that means you start with the behavior you want, and work backwards to make the code that does it. In the past I've considered fancy object-oriented mouse tool classes, but the style of editing I want is intuitive, easy, and fast, using the fewest number of mouse clicks possible to achieve a task. I think that's why so many people loved 3D World Studio, and it's a quality I want to retain in the design of the Leadwerks3D editor.
I now have basic CSG editing working. The code that does this is a little more event-oriented spaghetti than the engine core, but sometimes that is appropriate. I can't wait to start working with a CSG editor again, with new features like smooth groups. Drag and drop materials onto objects is already working, and it feels so intuitive and pleasant to use. This is the stuff I programmatically live for.