directive aproach