sketch of API