Design of the API