arch should be self.arch