design of an API