framework -> API