Refactore the API.