external function support