The CFEngine normal ordering is (cf https://cfengine.com/archive/manuals/cf3-Reference#Agent-normal-ordering):
<pre>
        vars
        classes
        outputs
        interfaces
        files
        packages
        guest_environments
        methods
        processes
        services
        commands
        storage
        databases
        reports
</pre>

And our best practise use this ordering into the Technique code (cf https://www.rudder-project.org/foswiki/Development/TechniqueBestPractices):
<pre>
If classes should be created in order to iterate for make a workaround of the normal ordering (i.e: "iteration_1", "iteration_2", "iteration_3"), they should always be defined at the end of the promise type "classes". 
</pre>

Then *files* should be added before *commands* and *methods*