     case Current /// Reserves space for currently visible labels
 }
 
-
+public typealias ChartAxisValueLabelDrawersWithAxisLayer = (valueLabelDrawers: ChartAxisValueLabelDrawers, layer: ChartAxisLayer)
 public struct ChartAxisLayerTapSettings {
     public let expandArea: CGSize
-    let handler: (ChartAxisValueLabelDrawers -> Void)?
-    
-    public init(expandArea: CGSize = CGSizeMake(10, 10), handler: (ChartAxisValueLabelDrawers -> Void)? = nil) {
+    let handler: (ChartAxisValueLabelDrawersWithAxisLayer -> Void)?
+    
+    public init(expandArea: CGSize = CGSizeMake(10, 10), handler: (ChartAxisValueLabelDrawersWithAxisLayer -> Void)? = nil) {
         self.expandArea = expandArea
         self.handler = handler
     }

        
        if visibleFrame.contains(location) {
            if let tappedLabelDrawers = (labelDrawers.filter{$0.drawers.contains{drawer in CGRectInset(drawer.frame, -tapSettings.expandArea.width, -tapSettings.expandArea.height).contains(location)}}).first {
                tapSettings.handler?(tappedLabelDrawers)
                return tappedLabelDrawers
            } else {
                return nil


    let clipContents: Bool
    
    public var tapSettings: ChartAxisLayerTapSettings?
    
    var widthWithoutLabels: CGFloat {
        return width
