 					hud = true
 				}
 				dispatch_async(dispatch_get_main_queue()) {
-					self.locals = [Venue]()
+					if retry > 0 {
+						self.determineLocation(remainingRetries: retry - 1)
+					} else {
+						self.locals = [Venue]()
 
-					if hud == true {
-						presentResultHud(self.progressHud,
-							inView: self.view,
-							withTitle: NSLocalizedString("Undetermined Location", comment: "Location determination failure hud title"),
-							andDetail: message,
-							indicatingSuccess: false)
-					} else {
-						let alert = UIAlertController(title: NSLocalizedString("Location Services Unavailable", comment: "Location services unavailable alert title"),
-							message:message,
-							preferredStyle: .Alert)
-						alert.addAction(UIAlertAction(title: NSLocalizedString("Roger", comment: "Default location services disabled alert button"), style: .Default, handler: { (action) in self.performSegueWithIdentifier("Sampling Done Segue", sender: nil) }))
-						self.presentViewController(alert, animated: true, completion: nil)
+						if hud == true {
+							presentResultHud(self.progressHud,
+								inView: self.view,
+								withTitle: NSLocalizedString("Undetermined Location", comment: "Location determination failure hud title"),
+								andDetail: message,
+								indicatingSuccess: false)
+						} else {
+							let alert = UIAlertController(title: NSLocalizedString("Location Services Unavailable", comment: "Location services unavailable alert title"),
+								message:message,
+								preferredStyle: .Alert)
+							alert.addAction(UIAlertAction(title: NSLocalizedString("Roger", comment: "Default location services disabled alert button"), style: .Default, handler: { (action) in self.performSegueWithIdentifier("Sampling Done Segue", sender: nil) }))
+							self.presentViewController(alert, animated: true, completion: nil)
+						}
+
+						Flurry.logError("Neighborhood_Determination_Failed", message: "Reason \(status)", error: nil)
 					}
-
-					Flurry.logError("Neighborhood_Determination_Failed", message: "Reason \(status)", error: nil)
 				}
 			}
 		}
-
-		recordController = storyboard!.instantiateViewControllerWithIdentifier("RecordSample") as! RecordSampleController
-		acceptController = storyboard!.instantiateViewControllerWithIdentifier("AcceptSample") as! AcceptSampleController
-
-		addChildViewController(recordController)
-		view.addSubview(recordController.view)
-		recordController.transitionStartY = recordController.preview.frame.origin.y
-		recordController.didMoveToParentViewController(self)
-    }
-
-	deinit {
-		INTULocationManager.sharedInstance().cancelLocationRequest(locationRequestId)
 	}
 
 	override func viewDidAppear(animated: Bool) {

				case .ServicesDenied:
					message = NSLocalizedString("Please enable \"While Using the App\" location access for PartyUP to submit videos.", comment: "Location services denied alert message while recording")
					hud = false
				case .ServicesDisabled:
					message = NSLocalizedString("Please enable location services to submit videos.", comment: "Location services disabled alert message while recording")
					hud = false
				case .TimedOut:
					message = NSLocalizedString("Timed out determining your location, try again later.", comment: "Location services timeout hud message while recording")
					hud = true

	var venues = [Venue]()

	private var locals: [Venue]!
	private let locationRetryMax = 2
	private var locationRequestId: INTULocationRequestID = 0

    override func viewDidLoad() {
