 
         resetState()
 
-        let clear: () -> () = {
-            self.state = State()
-        }
-
         do {
             while false == scanner.atEnd {
                 var marker: NSString?

                        shapes.append(s)
                    }

                    clear()
                    scanner.scanUpToCharactersFromSet(ObjLoader.newLineCharacters, intoString: &state.objectName)
                    moveToNextLine()
                    continue

            if let s = buildShape(state.objectName, vertices: state.vertices, normals: state.normals, textureCoords: state.textureCoords, faces: state.faces) {
                shapes.append(s)
            }
            state = State()

            running = false
        } catch let e {
            running = false
            resetState()
            throw e
        }
        return shapes
