change to self.sps.itervalues()