Started defining the API and tests (still in draft form)