implement first directive