def refresh(self):
      '''Refetch instance data from the API.
      '''
      response = requests.get('%s/guides/%s' % (API_BASE_URL, self.id))
      attributes = response.json()
      
      self.category = Category(attributes['category'])
      self.url = attributes['url']
      
      self.title = attributes['title']
      if attributes['image']:
         self.image = Image(attributes['image']['id'])
      else:
         self.image = None
      self.locale = attributes['locale']
      self.introduction = WikiText(attributes['introduction_raw'],
                                   attributes['introduction_rendered'])
      self.conclusion = WikiText(attributes['conclusion_raw'],
                                 attributes['conclusion_rendered'])
      #self.tools = attributes['tools']
      #self.parts = attributes['parts']
      self.subject = attributes['subject']
      self.modifiedDate = datetime.utcfromtimestamp(attributes['modified_date'])
      self.createdDate = datetime.utcfromtimestamp(attributes['created_date'])
      self.publishedDate = datetime.utcfromtimestamp(attributes['published_date'])
      #self.documents = attributes['documents']
      author = attributes['author']
      #self.author = User(author['userid'], name=author['text'])
      #self.timeRequired = attributes['timeRequired']
      self.steps = [Step(step['guideid'], step['stepid'], data=step) for step in attributes['steps']]
      self.type = attributes['type']
      self.public = attributes['public']
      self.revision = attributes['revisionid']
      self.difficulty = attributes['difficulty']
      self.prerequisites = [Guide(guide['guideid']) for guide in attributes['prerequisites']]
      #                     attributes['prereq_modified_date']
      #self.summary = attributes['summary']
      self.flags = [Flag.from_id(flag['flagid']) for flag in attributes['flags']]