public Do Run( string input, AlchemyController controller, ICommunicator communicator ) { string elementname = input.TrimStart( '*' ); if( controller.ElementExists( elementname ) ) controller.ForeachNonterminalElement( ( e ) => controller.ReportChangedRule( new Rule( new[] { elementname, e.Name } ) ) ); return Do.AnotherRule; }