def read(self, src):
        """ Download GeoJSON file of US counties from url (S3 bucket) """
        geojson = None
        if not self.is_valid_src(src):
            error = "File < {0} > does not exists or does start with 'http'."
            raise ValueError(error.format(src))
        if not self.is_url(src):
            return open(src, 'r').read().decode('latin-1').encode('utf-8')
        tmp = self.get_location(src)
        # if src poits to url that was already downloaded
        # read from local file instead
        if os.path.isfile(tmp):
            with open(tmp, 'r') as f:
                return f.read()
        # download file and write to local filesystem before returning
        response = urllib2.urlopen(src)
        data = response.read().decode('latin-1').encode('utf-8')
        with open(tmp, 'w') as f:
            f.write(data)
            return data