Updates Directives
Moves some logic to the Modifier class, caches directives that are
cachable, and makes it thread-safe as possible.