         presentViewController(refineViewController, animated: true, completion: nil)
     }
 
+    var sideSpacing: CGFloat {
+        let compactSize = traitCollection.horizontalSizeClass == .Compact
+        return compactSize ? 40 : 80
+    }
+
+    func setupSaleArtworksLayout(viewWidth: CGFloat) {
+        // TODO: Module depends on current refineSettings
+        saleArtworksViewController.modelViewController.activeModule = ARSaleArtworkItemFlowModule(traitCollection: traitCollection, width: viewWidth - sideSpacing)
+    }
+
     func displayCurrentItems(viewWidth: CGFloat? = nil) {
         let items = saleViewModel.refinedSaleArtworks(refineSettings)
 


class AuctionViewController: UIViewController {
    let saleID: String
    var hasLoadedSaleViewModel = false
    var saleViewModel: SaleViewModel!
    var appeared = false


    override func traitCollectionDidChange(previousTraitCollection: UITraitCollection?) {
        super.traitCollectionDidChange(previousTraitCollection)

        guard saleViewModel != nil else {
            // We can't set up our current saleArtworksViewController if it has no models.
            return
        }
