change recovery logic