new api interface