better explanation of api