we probably shouldn't call this a mock if it isn't