Even worse, these tools usually accept language-specific expressions, and place them unchanged in the final code. In the last example, guards can be written as C++ boolean expressions and output can be written as C++ method calls. The model is thus very modelling-tool-specific. There is hardly any chance for such a model to run correctly in another tool, knowing that different modelling tools often use different programming languages. Even if they use the same language, they place the above-mentioned expressions in different position of the code, and interpret them in different ways.