   }
 }
 
-extension PlaceAutocompleteViewController: UISearchBarDelegate {
+extension PlaceAutocompleteViewControllers: UISearchBarDelegate {
   func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
     // Update the GMSAutocompleteTableDataSource with the search text.
     tableDataSource.sourceTextHasChanged(searchText)
   }
 }
 
-extension PlaceAutocompleteViewController: GMSAutocompleteTableDataSourceDelegate {
+extension PlaceAutocompleteViewControllers: GMSAutocompleteTableDataSourceDelegate {
   func tableDataSource(_ tableDataSource: GMSAutocompleteTableDataSource, didAutocompleteWith place: GMSPlace) {
     // Do something with the selected place.
     print("Place name: \(place.name)")

import GooglePlaces
import UIKit

class PlaceAutocompleteViewController: UIViewController {
  
  private var searchBar: UISearchBar!
  private var tableView: UITableView!
  private var tableDataSource: GMSAutocompleteTableDataSource!
  
  override func viewDidLoad() {
    super.viewDidLoad()

    searchBar = UISearchBar(frame: CGRect(x: 0, y: 0, width: 250.0, height: 44.0))

    tableDataSource = GMSAutocompleteTableDataSource()
    tableDataSource.delegate = self

    tableView = UITableView(frame: CGRect(x: 0, y: 44, width: 250.0, height: 44.0))
    tableView.delegate = tableDataSource
    tableView.dataSource = tableDataSource

    view.addSubview(searchBar)
    view.addSubview(tableView)
  }



  func tableDataSource(_ tableDataSource: GMSAutocompleteTableDataSource, didFailAutocompleteWithError error: Error) {
    // Handle the error.
    print("Error: \(error.localizedDescription)")
  }

  func tableDataSource(_ tableDataSource: GMSAutocompleteTableDataSource, didSelect prediction: GMSAutocompletePrediction) -> Bool {
