better error message
more information when restore()