supports additional APIs with major reforming