     private var onSuccess: ((Data) -> Void)?
     private var onTypedSucess: ((Any) -> Void)?
     
+    /// Count of all stared requests
     public var requestCount: Int = 0
+    /// Last executed request
     public var lastReuqest: NetworkRequestRepresening?
 
     public func request<T: ResourceModeling>(_ resource: T, onCompletion: @escaping (T.Model) -> Void,
                  onError: @escaping (DBNetworkStackError) -> Void) -> NetworkTaskRepresenting {
         lastReuqest = resource.request
         onSuccess = { data in
-             onCompletion(try! resource.parse(data))
+            guard let result = try? resource.parse(data) else {
+                fatalError("Could not parse data into matching result type")
+            }
+            onCompletion(result)
         }
         onTypedSucess = { anyResult in
             guard let typedResult =  anyResult as? T.Model else {

        onSuccess = nil
    }
    
    public func returnSucess<T>(with serializedResponse: T, count: Int = 1) {
        for _ in 0...count {
            onTypedSucess?(serializedResponse)

        return NetworkTaskMock()
    }
    
    /// Will return an error to the current waiting request.
    ///
    /// - Parameters:
    ///   - error: the error which gets passed to the caller
    ///   - count: the count, how often the error accours. 1 by default
    public func returnError(with error: DBNetworkStackError, count: Int = 1) {
        for _ in 0...count {
            onErrorCallback?(error)
