     }
     
     override open func prepare() {
-        cellCount = collectionView!.numberOfItems(inSection: 0)
+        guard let collectionView = collectionView else { return }
+        cellCount = collectionView.numberOfItems(inSection: 0)
         if cellCount > 0 {
-            invisibleCellCount = Double(collectionView!.contentOffset.y/configuration.cellSize.height)
+            invisibleCellCount = Double(collectionView.contentOffset.y/configuration.cellSize.height)
         }
     }
     

            }
            
        case .rightCenter:
            attributes.center = CGPoint.init(x: (viewSize?.width)!-cellSize.width/2.0,
                                             y: (contentOffset?.y)!+(viewSize?.height)!/2)
            
            if (angle <= (M_PI+2.0*angleOffset+angular/180.0)) && (angle >= -angleOffset) {
                attributes.isHidden = false

                                                     y: (CGFloat(sin(angle)*radius)+cellSize.height/2.0))
            }
        case .rightTop:
            attributes.center = CGPoint.init(x: (viewSize.width)-cellSize.width/2.0,
                                             y: (contentOffset.y))
            
            if (angle <= (M_PI_2+2.0*angleOffset+angular/90.0)) && (angle >= -angleOffset) {
                attributes.isHidden = false
