     var lastSetPoint: TGGeoPoint?
     var shouldShowCurrentLocation = false
     public var shouldFollowCurrentLocation = false
-    public var findMeButton = MapViewController.createFindMeButton()
+    public var findMeButton = UIButton(type: .Custom)
+
+    init(){
+        super.init(nibName: nil, bundle: nil)
+        defer {
+            findMeButton = createFindMeButton()
+        }
+    }
+    
+    required public init?(coder aDecoder: NSCoder) {
+        super.init(coder: aDecoder)
+        defer {
+            findMeButton = createFindMeButton()
+        }
+    }
 
     //! Returns whether or not the map was centered on the device's current location
     public func resetCameraOnCurrentLocation(tilt: Float = 0.0, zoomLevel: Float = 16.0, animationDuration: Float = 1.0) -> Bool {

        findMeButton.sizeToFit()
    }

    static func createFindMeButton() -> UIButton {
        let findMeButton = UIButton(type: UIButtonType.Custom)
        findMeButton.addTarget(self, action: #selector(defaultFindMeAction), forControlEvents: .TouchUpInside)
        findMeButton.enabled = false
        findMeButton.hidden = true
        findMeButton.adjustsImageWhenHighlighted = false

        super.viewDidLoad()
        LocationManager.sharedManager.delegate = self
        gestureDelegate = self
        findMeButton = createFindMeButton()
    }

    override public func viewWillAppear(animated: Bool) {
