implemented directives