Change the API to be more optional.