Why does this need to be in the API? Can't it just be in the impl?