Do we really want this on the interface? Surely it will only be called internally?