Swift 3, found nil while unwrapping Optional Value in CoreData app

What worked in Swift 2 now does not work in Swift 3! The code below crashes on the line “managedObjectContext: coreDataStack.context”

import UIKit
import CoreData

class GaugeTableViewController: UIViewController, NSFetchedResultsControllerDelegate, UITableViewDataSource, UITableViewDelegate {

@IBOutlet var tableView:UITableView!
var newGaugeTextField: UITextField!
var newGaugeName: String!

var coreDataStack: CoreDataStack!
lazy var fetchedResultController:
NSFetchedResultsController<Gauge> = self.gaugesfetchedResultController()

override func viewDidLoad() {
    super.viewDidLoad()
}

func gaugesfetchedResultController()
    ->NSFetchedResultsController <Gauge> {
        
        fetchedResultController = NSFetchedResultsController (
                fetchRequest: gaugesFetchRequest(),
                managedObjectContext: coreDataStack.context,
                sectionNameKeyPath: nil,
                cacheName: nil)
        
        fetchedResultController.delegate = self
        
        do {
            try fetchedResultController.performFetch()
        } catch let error as NSError {
            print("Error: \(error.localizedDescription)")
        }
        
        return fetchedResultController
}

Any suggestions?

Reply to self.

Changed:
lazy var fetchedResultController:
NSFetchedResultsController = self.gaugesfetchedResultController()

to

var fetchedResultController:NSFetchedResultsController = NSFetchedResultsController()

Now it works fine!