more work on the API