doing cleanup over self.pins instead of raw pin map