working out the api some more