add directive generator