         
         get {
             
+            var alignExtraLength:CGFloat = 0.0
             var simpleRadius = internalRadius > 0.0 ? internalRadius : (bounds.size.min() * 0.5)
             
-            var outerImageAlign:Bool  = false
-            var borderImageAlign:Bool = false
-            var outerTextAlign:Bool  = false
-            var borderTextAlign:Bool = false
+            var outerImageAlign:Int  = 0
+            var borderImageAlign:Int = 0
+            var outerTextAlign:Int  = 0
+            var borderTextAlign:Int = 0
             
             // Max angle
             

            
            let maxSideText = maxTextSize()
            
           // if ( maxSide < self.maxImageSize().max() ) {
                if ( outerImageAlign ) {
                    simpleRadius -= maxSideText.max()
                } else if ( borderImageAlign ) {
                    simpleRadius -= (maxSideText.max() * CGFloat(0.5))
                }else{
                    
                    // nothing
                }
        //    }
            
            //println("\(self.layer.name) radius : \(simpleRadius) border:\(border) outer:\(outer) max  image side:\(maxSide) max text size \(maxSideText)")
            
            return simpleRadius
        }
    }


            
            for (index, step) in enumerate(dataSteps) {
                
                let curStep = (step as! OMStepData)
                
                // Image
                outerImageAlign  += (curStep.imageAlign == .AlignOuter) ? 1 : 0
                borderImageAlign += (curStep.imageAlign == .AlignBorder) ? 1 : 0
                
                // Text
                outerTextAlign  += (curStep.textAlign == .AlignOuter) ? 1 : 0
                borderTextAlign += (curStep.textAlign == .AlignBorder) ? 1 : 0
            }
        

            let maxSide = CGFloat(maxAngle) * simpleRadius
            
            if ( maxSide < self.maxImageSize().max() ) {
                if ( outerImageAlign > 0) {
                    alignExtraLength  = maxSide
                } else if ( borderImageAlign > 0) {
                    alignExtraLength = maxSide * 0.5
                }else{
                    
                    // nothing
