Take a decoupling approach to the API.