     }
     
     // MARK: - Create a Token
-    public func requestToken(requestObject: OmiseRequestObject) {
+    public func requestToken(requestObject: OmiseRequestObject, tokenizerDelegate: OmiseTokenizerDelegate) {
         guard let request = createURLRequest(requestObject) else {
-            return
+            let error = OmiseError.UnexpectedError("Error can't create url request")
+            return tokenizerDelegate.OmiseRequestTokenOnFailed(error)
         }
+        
+        self.delegate = tokenizerDelegate
         
         let session = NSURLSession.sharedSession()
         let task = session.dataTaskWithRequest(request, completionHandler: didCompleteWithDelegate)

    
    private func didCompleteWithCallBack(data: NSData?, response: NSURLResponse?, error: NSError?) {
        guard let callback = callback else {
            print("Callback is null")
            return
        }
        

            return (token, nil)
            
        default:
            OmiseWarning.SDKWarning("unrecognized HTTP status code: \(httpResponse.statusCode)")
            return (nil,nil)
        }
    }
