      The initialiser which when HPPManager is created, also creaes and instance of the HPPViewController.
 
      */
-    override public init() {
+
+    private let session: URLSession
+
+    public init(session: URLSession = .shared) {
+        self.session = session
         super.init()
         self.hppViewController = HPPViewController()
         self.hppViewController.delegate = self

        }
        request.httpBody = self.getParametersString().data(using: String.Encoding.utf8)

        let session = URLSession.shared
        let dataTask = session.dataTask(
            with: request,
            completionHandler: { data, response, error in


        request.httpBody = parameters.data(using: String.Encoding.utf8)

        let dataTask = session.dataTask(
            with: request,
            completionHandler: { data, response, error in
