added functionalDef