editable source function support