 
 /// Defines a stub request case
 public struct ServiceStubRequest {
+    
+    /// URL Path to regex against upcoming requests
     public let path:String
+    
+    /// Optional parameters that will get compare as well against requests with the same kinda of parameters
     public let parameters:[String:Any]?
     
     public init(path:String, parameters:[String:Any]? = nil) {


/// Defines stub response for a matching API path
public struct ServiceStub {
    public let request:ServiceStubRequest
    public let stubType:ServiceStubType
    public let stubBehavior:ServiceStubBehavior
    public let stubCase:ServiceStubCase
    
    public init(execute request:ServiceStubRequest,
                with type:ServiceStubType,
                when stubCase:ServiceStubCase = .unauthenticated,
                react behavior:ServiceStubBehavior = .immediate)
    {
        self.request = request
        self.stubType = type

    case delayed(seconds: TimeInterval)
}

private let validStatusCodes = (200...299)
/// Used for stubbing responses.
public enum ServiceStubType {
    
    /// Builds a ServiceStubType from a HTTP Code and a local JSON file
    ///
    /// - Parameters:
    ///   - jsonFile: the name of the bundled json file
    ///   - code: the http code. Success codes are (200..299)
    public init(buildWith jsonFile:String, http code:Int) {
        let response = JSONSerialization.JSONObjectWithFileName(fileName: jsonFile)
        if validStatusCodes.contains(code) {
            self = .success(code: code, response: response)
        } else {
            self = .failure(code: code, response: response)
        }
    }
    
    /// The network returned a response, including status code and response.
    case success(code:Int, response:[String:Any]?)
