public LSystem(LSystemController controller, string key)
    {
        recursionDepth = defaultRecursionDepth;

        lsysController = controller;
        Key            = key;

        TransformSpec = TransformSpec.Identity();
        Shape         = "1";

        Reset(Axiom);
        Results = new List <string>();
        Units   = new List <List <ProcessUnit> >();

        Generate();
    }