This seems like it should be private