Start a hugely messy implementation of the API