implement basic api interface