First attempt to implement the API