api + interface