Directive can now be created on its own.
__construct() modified
self::fromString() added