         assert(Constants.Size.BankIndicator.maximumDisplayDegree <= 180, "Bank indicator maximum display degree must have maximum value of 180")
         super.init()
 
+        addMaskedArc()
+        addMarkers()
+    }
+
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    private func addMaskedArc() {
         let arc = SKShapeNode(circleOfRadius: CGFloat(Constants.Size.BankIndicator.radius))
         let cropNode = SKCropNode()
         let maskNodeEdgeSize = Constants.Size.BankIndicator.radius * 2 + Constants.Size.BankIndicator.lineWidth

        
        let radians = Constants.Angular.radiansFromDegrees(CGFloat(marker.degree))
        let rotateAction = SKAction.rotateByAngle(-radians, duration: 0)
        
        let height = (style == .Major ? Constants.Size.BankIndicator.majorMarkerHeight : Constants.Size.BankIndicator.minorMarkerHeight)
        let line = SKShapeNode(rectOfSize: CGSize(width: 0, height: height))
        line.strokeColor = Constants.Color.BankIndicator.line
        line.fillColor = Constants.Color.BankIndicator.line
        let offset = CGFloat(Constants.Size.BankIndicator.radius + (height / 2))
        let displacement = SKAction.moveBy(CGVector(dx: offset * sin(radians), dy: offset * cos(radians)), duration: 0)
        line.runAction(SKAction.sequence([rotateAction, displacement]))
        line.antialiased = true
        addChild(line)
        

            label.fontColor = Constants.Color.BankIndicator.text
            
            let offset = CGFloat(Constants.Size.BankIndicator.radius + Constants.Size.BankIndicator.markerTextOffset)
            label.runAction(SKAction.sequence([rotateAction, moveAction(offset)]))
            addChild(label)
        }
    }
