more standardized api interface