probably implemented recover method