In fact, to do this properly, Cookie will have to be a trait, and the impl private.