     
     override init() {
         self.sessionIdentifier = NSUUID().uuidString
+        self.outputDirectory = NSTemporaryDirectory()
         self.fileType = AVFileTypeMPEG4
         self.fileExtension = "mp4"
         
-        self.sessionDirectory = NSTemporaryDirectory()
         self.sessionClips = []
         self.sessionClipFilenameCount = 0
         self.sessionDate = Date()

    // MARK: - private instance vars
    
    internal var sessionIdentifier: String
    internal var sessionDirectory: String
    internal var sessionDate: Date
    internal var sessionDuration: CMTime


    
    // config
    
    public var outputDirectory: String
    
    // see AVMediaFormat.h for file type and extension
    
    public var fileType: String
    
    public var fileExtension: String
    
    // state

    public var identifier: String {
        get {
            return self.sessionIdentifier
        }
    }
    
    public var date: Date {
        get {
            return self.sessionDate
        }
    }
    
    public var url: URL? {
        get {
            let filename = "\(self.identifier)-NL-merged.\(self.fileExtension)"
            if let url = NextLevelClip.clipURL(withFilename: filename, directory: self.outputDirectory) {
                return url
            } else {
                return nil
            }
        }
    }

    public var isVideoReady: Bool {
        get {
            return self.videoInput != nil
