fixed self.selector and add selector cache