improve APIs