Restructure directiveDefine()