Implement restore