Factored out the directive into its own module