Refactored Global Directives so that they can be expressed in any order
and also added some further tests around Global Directives