re-imaging the API