complete existed functions