     private let source: String
     private var tokens: [Token] = []
     
-    private var start = 0
-    private var current = 0
+    private var start: String.Index
+    private var current: String.Index
     private var line = 1
     
     init(_ source: String) {
         self.source = source
+        self.start = source.startIndex
+        self.current = source.startIndex
     }
     
     func scanTokens() -> [Token] {

    }
    
    private func isAtEnd() -> Bool {
        return current >= source.characters.count
    }
    
    private func scanToken() {

    private func identifier() {
        while (isAlphaNumeric(peek())) { let _ = advance() }
        
        let text = source[start..<current]
        
        let type = Scanner.keywords[text] ?? .IDENTIFIER
        addToken(type)
