more figuring out what an ideal API would be