OptimixJ is a graph rewrite tool that can be embedded easily into the standard software process. Applications and models can be developed in Java or UML and extended by graph rewrite systems. We discuss how OptimixJ solves several problems that arise: the model-ownership problem, the embedded graphs problem, the library adaptation problem, and the target code encapsulation problem. We also show how the tool can be adapted to host language extensions or to new host languages in a very simple way, relying on the criterion of sublanguage projection. This reduces the effort for adapting OptimixJ to other host languages considerably. How can we get more people to employ graph rewriting in their daily modelling and programming tasks? One of the standard answers is: “by better tooling”. However, there are two major problems with this answer. Firstly, most graph rewrite tools have employed their proprietary DDL1 , basing the graph rewrite specifications and the generated code on this DDL....