each section refactored into directives