Full draft implementation of the api