Implement more of the api