switch to swift, use collectionViews