retain cycles better visualized and better weakSelf pattern