finish some api