<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def run(self):
 """ For each state in states file build url and download file """

        states = open(self.states, 'r').read().splitlines()
        for state in states:
            url = self.build_url(state)
            log = "Downloading State < {0} > from < {1} >"
            logging.info(log.format(state, url))
            tmp = self.download(self.output, url, self.overwrite)
            self.s3.store(self.extract(tmp, self.tmp2poi(tmp)))