docs: function(artist, artworkSize) {
      return new Promise(function(resolve, reject) {
  
        if (typeof artist !== 'string') {
          throw new Error('Artist was not a string')
        }
  
        if (typeof artworkSize !== 'string') {
          throw new Error('Artwork size value was not a string')
        }
  
        if(acceptedArtworkSizes.indexOf(artworkSize) == -1) {
          throw new Error("Artwork size was not one of accepted sizes: ['small', 'medium', 'large', 'extralarge', 'mega']")
        }
  
        request({
          method: 'GET',
          uri: encodeURI(apiURL + '/2.0/?format=json&api_key=' + apiKey + '&method=artist.getinfo&artist=' + artist)
        }, function(err, response, body) {
  
            var body = JSON.parse(body)
            if(body.error) {
              // Failed Request - Return Error Code
              reject(body)
  
            } else {
              // Successful Request
              var response = JSON.parse(response.body)
  
              // Get artist artwork
              var artistArtwork = ''; 
              response.artist.image.map(function(element) {
                if(element.size == artworkSize) {
                  artistArtwork = element['#text']
                }
              })
  
              // Get tags
              var tags = response.artist.tags.tag.map(function(element) {
                return element.name
              })
  
              // Get bio
              var bio = response.artist.bio.content
              try {
                bio = bio.substring(0, bio.indexOf(' <a')) + bio.substring(bio.indexOf('</a>') + 4)
              } catch (err) {
                bio = response.artist.bio.content
              }
  
              resolve({
                artist: response.artist.name,
                artwork: artistArtwork,
                bio: response.artist.bio.content,
                tags: tags
              })
            }
        })
      })
    }