derived api accordingly