state restoration methods