 // TODO: create class from layout dictionary?
 
 struct layoutConstants {
-//    let sideEdgesNormal: CGFloat = 3
-//    let sideEdgesLarge: CGFloat = 4
-//    let sideEdgesLargeThreshhold: CGFloat =
-//    let topEdgePortraitNormal: CGFloat = 12
-//    let topEdgePortraitSmall: CGFloat = 10
-//    let topEdgePortraitSmallest: CGFloat = 8
-//    let topEdgeLandscapeNormal: CGFloat = 6
-//    let topEdgeLarge: CGFloat = 12
-    
     static let landscapeRatio: CGFloat = 2
     
-    static let sideEdges: CGFloat = 3
-    static let topEdgePortrait: CGFloat = 10
+    static let sideEdgesPortraitArray: [CGFloat] = [3, 4]
+    static let sideEdgesPortraitWidthThreshholds: [CGFloat] = [700]
+    static let sideEdgesLandscape: CGFloat = 3
+    static let topEdgePortraitArray: [CGFloat] = [12, 10, 8]
+    static let topEdgePortraitWidthThreshholds: [CGFloat] = [350, 400]
     static let topEdgeLandscape: CGFloat = 6
     
     static let rowGapsPortrait: CGFloat = 15

    static let keyGaps: CGFloat = 6
    static let keyGapsSmall: CGFloat = 5
    static let keyGapsSmallThreshhold: CGFloat = 10
}




let globalLayout: [String:Double] = [
    "leftGap": 3,

            }()
            
            // measurement
            let sideEdges = (isLandscape ? layoutConstants.sideEdgesPortrait(bounds.width) : layoutConstants.sideEdgesLandscape)

            // measurement
            let topEdge: CGFloat = ((isLandscape ? layoutConstants.topEdgeLandscape : layoutConstants.topEdgePortrait(bounds.width)) + self.topBanner)
            
            // measurement
            let rowGaps: CGFloat = (isLandscape ? layoutConstants.rowGapsLandscape : layoutConstants.rowGapsPortrait)
