     //MARK: Init
     public   init(){}
     
-    public   init(image: OCRImage, delegate: SwiftOCRDelegate?, _ completionHandler: @escaping (String) -> Void){
-        self.delegate = delegate
-        self.recognize(image, completionHandler)
-    }
-    
+	public   init(recognizableCharacters: String, network: FFNN) {
+		self.characters = recognizableCharacters
+		self.network = network
+	}
+	
+	public   init(image: OCRImage, delegate: SwiftOCRDelegate?, _ completionHandler: @escaping (String) -> Void){
+		self.delegate = delegate
+		self.recognize(image, completionHandler)
+	}
+	
+	public   init(recognizableCharacters: String, network: FFNN, image: OCRImage, delegate: SwiftOCRDelegate?, _ completionHandler: @escaping (String) -> Void) {
+		self.characters = recognizableCharacters
+		self.network = network
+		self.delegate = delegate
+		self.recognize(image, completionHandler)
+	}
+	
     /**
      
      Performs ocr on the image.

    open   func recognize(_ image: OCRImage, _ completionHandler: @escaping (String) -> Void){
        
        func indexToCharacter(_ index: Int) -> Character {
            return Array(recognizableCharacters.characters)[index]
        }
        
        func checkWhiteAndBlackListForCharacter(_ character: Character) -> Bool {

                    if networkResult.max() >= self.confidenceThreshold {
                       
                        /*
                         let recognizedChar = Array(characters.characters)[networkResult.indexOf(networkResult.maxElement() ?? 0) ?? 0]
                         recognizedString.append(recognizedChar)
                         */
                        
