[MUSIC] Okay, so we have added the faceTracker library to the project, we've created the user interface, and embedded it in our ViewController class. Now I'm going to show you just the basic code that you need to get a reference to that face tracker ViewController and start communicating with it, and start tracking the face. So here is our ViewController class definition file here. This is the only code file that we have to edit, just to get things up and running. So the fist thing that I've done here is import the face tracker module into the files. We get access to all the faceTracker code. The next thing is, I wanted to make this ViewController class conform to the faceTrackerViewController, delegate protocol. So, this protocol is what defines the methods that we have to implement to receive points of a detected facial features when the faceTracker is doing its tracking thing. Okay, so the next thing I have done here is created a local property for the actual faceTrackerViewController. So once I find it in the storyboard, I can keep a reference to it in my ViewController so I can start and stop tracking. Okay, after that these are just two boiler plate methods here. I haven't changed anything in them. The next method that I've added is an override for prepare for segues. So as you recall, our prepareForSegue is called when the storyboard performs a segue and we do have one special segue that we've added. If you recall in the storyboard, we added an embed segue so The segue runs when this ViewController appears on the screen and embeds the contained ViewCo ntroller, which is the faceTracker. So we've identified that with a special segue identifier here. So if it detects this identifier in particular, it knows that the destination ViewController will be our faceTrackerViewController that we put into the user interface. So all we're doing here is just setting this property of our class to the actual instance of the faceTrackerViewController that was instantiated. And the faceTrackerViewController delegate is set to this class, because remember that's the protocol that we're confirming too. Okay. So, that'll get setup in the background and then what happens when the actual view appears on the screen, we already have now that reference to the faceTrackerViewController instance. And what we'll do in the viewDidAppear method is we will start tracking. So if I call the startTracking method, it will start actually tracking the face. This startTracking method takes one parameter and it's a closure, it's like a completion closure. When you call this, it's actually an asynchronous method, so on some devices it might be a little bit slow to get started tracking and showing the image on the screen. So this, rather than pausing the entire user interface while it starts up. It's asynchronous, and you'll know that it's done setting up and starting the tracking when it calls this closure as a callback. So I don't really, in this demo, really have any concerns about doing anything special once it starts tracking the face, I've left it blank. It doesn't take the closure as an optional, so you have to put a value there in this particular API, but you can just basically have it do nothing. So I just put a set of do nothing closure here. Okay, so the one last method here is just an empty method just for our purposes right now is faceTrackerDidUpdate. So this is the actual protocol method implementation. This method is required if we conform to this delegate protocol here. So I put in just stay blank implementation at this moment. In a second I'll show you a more fuller, complete implementation that actually does something. But this is the method where you actually receive those face points, this is where you receive points that show what happens as the faceTracker is actually tracking the face. And then you can use those points however you like. Okay, so that is the basic implementation to the minimal implementation of getting access to this faceTracker and starting it up. If you run this, you won't see anything on the screen because we haven't actually implemented any views or graphics. We'll do that in the next second, but from here, you can basically go in any direction you want to go.