improve api