 import Marshal
 
 public protocol NetworkRequests {
-    func get(endpoint: String, parameters: JSONObject?, preventCaching: Bool, completion: Network.ResponseCompletion)
+    var preventCaching: Bool { get set }
+    func get(endpoint: String, parameters: JSONObject?, completion: Network.ResponseCompletion)
     func post(endpoint: String, parameters: JSONObject?, completion: Network.ResponseCompletion)
     func patch(endpoint: String, parameters: JSONObject?, completion: Network.ResponseCompletion)
     func put(endpoint: String, parameters: JSONObject?, completion: Network.ResponseCompletion)

private extension NetworkAPIRequests {
    
    /// - Precondition: `AppNetworkState.currentAppState` must not be nil
    func config(endpoint: String, preventCaching: Bool = false) throws -> (session: NSURLSession, url: NSURL) {
        guard let appNetworkState = AppNetworkState.currentAppState else { fatalError("Must configure current app state to config") }
        guard let configuration = defaultConfiguration else { throw Network.Error.Status(status: 401) }
        if preventCaching {

    
    // MARK: - Public API
    
    public func get(endpoint: String, parameters: JSONObject?, completion: Network.ResponseCompletion) {
        do {
            let (session, url) = try config(endpoint)
            network.get(url, session: session, parameters: parameters, completion: completion)
        }
        catch {
