on second thoughts, we already have an API.