add directives framework