well your setting it to `self.data`. either we cache it or we don't set it to `self.data`. going half way is just confusing.