separate the stateful recovery interface