         task.resume()
     }
     
-    func logOut() {
+    public func logOut() {
         appState.deleteToken()
     }
     
-    func GET(endpoint: String, parameters: [String: String]?, completion: (responseObject: JSONObject?, error: ErrorType?) -> Void) {
+    public func GET(endpoint: String, parameters: [String: String]?, completion: (responseObject: JSONObject?, error: ErrorType?) -> Void) {
         if appState.accessToken == nil {
             // TODO: Force authentication
         }

import Foundation
import JaSON

protocol AppStateRepresentable {
    var accessToken: String? { get }
    var loggedIn: Bool { get }
    var networkPath: String { get }

    
    // MARK: - Public API
    
    public func logIn(username: String, password: String, completion: (success: Bool, error: ErrorType?) -> Void) {
        let parameters = [
            "grant_type": "password",
            "email": username,
