 
         let request = Request(URL: URL, method: .GET, parameters: parameters, parse: { JSON -> Result<PaginatedAPIResponse<User>, SoundcloudError> in
             return .Success(PaginatedAPIResponse(JSON, parse: parse))
-            }) { result in
-                completion(result.result!)
+        }) { result in
+            completion(result.result!)
         }
         request.start()
     }
 
     #if os(iOS) || os(OSX)
     /**
-    Follow the given user.
-
-    **This method requires a Session.**
-
-    - parameter userIdentifier: The identifier of the user to follow
-    - parameter completion:     The closure that will be called when the user has been followed or upon error
-    */
+     Follow the given user.
+
+     **This method requires a Session.**
+
+     - parameter userIdentifier: The identifier of the user to follow
+     - parameter completion:     The closure that will be called when the user has been followed or upon error
+     */
     public func follow(userIdentifier: Int, completion: SimpleAPIResponse<Bool> -> Void) {
-        changeFollowStatus(true, userIdentifier: userIdentifier, completion: completion)
-    }
-
-    /**
-    Follow the given user.
-
-    **This method requires a Session.**
-
-    - parameter userIdentifier: The identifier of the user to unfollow
-    - parameter completion:     The closure that will be called when the user has been unfollowed or upon error
-    */
+        User.changeFollowStatus(true, userIdentifier: userIdentifier, completion: completion)
+    }
+
+    /**
+     Follow the given user.
+
+     **This method requires a Session.**
+
+     - parameter userIdentifier: The identifier of the user to follow
+     - parameter completion:     The closure that will be called when the user has been followed or upon error
+     */
+    public static func follow(userIdentifier: Int, completion: SimpleAPIResponse<Bool> -> Void) {
+        User.changeFollowStatus(true, userIdentifier: userIdentifier, completion: completion)
+    }
+
+    /**
+     Unfollow the given user.
+
+     **This method requires a Session.**
+
+     - parameter userIdentifier: The identifier of the user to unfollow
+     - parameter completion:     The closure that will be called when the user has been unfollowed or upon error
+     */
     public func unfollow(userIdentifier: Int, completion: SimpleAPIResponse<Bool> -> Void) {
-        changeFollowStatus(false, userIdentifier: userIdentifier, completion: completion)
-    }
-
-    internal func changeFollowStatus(follow: Bool, userIdentifier: Int, completion: SimpleAPIResponse<Bool> -> Void) {
+        User.changeFollowStatus(false, userIdentifier: userIdentifier, completion: completion)
+    }
+
+    /**
+     Unfollow the given user.
+
+     **This method requires a Session.**
+
+     - parameter userIdentifier: The identifier of the user to unfollow
+     - parameter completion:     The closure that will be called when the user has been unfollowed or upon error
+     */
+    public static func unfollow(userIdentifier: Int, completion: SimpleAPIResponse<Bool> -> Void) {
+        User.changeFollowStatus(false, userIdentifier: userIdentifier, completion: completion)
+    }
+
+    static func changeFollowStatus(follow: Bool, userIdentifier: Int, completion: SimpleAPIResponse<Bool> -> Void) {
         guard let clientIdentifier = Soundcloud.clientIdentifier else {
             completion(SimpleAPIResponse(.CredentialsNotSet))
             return

    internal static let BaseURL = NSURL(string: "https://api.soundcloud.com/users")!

    /**
    Loads an user profile

    - parameter identifier: The identifier of the user to load
    - parameter completion: The closure that will be called when user profile is loaded or upon error
    */
    public static func user(identifier: Int, completion: SimpleAPIResponse<User> -> Void) {
        guard let clientIdentifier = Soundcloud.clientIdentifier else {
            completion(SimpleAPIResponse(.CredentialsNotSet))
            return
        }

        let URL = User.BaseURL.URLByAppendingPathComponent("\(identifier).json")
        let parameters = ["client_id": clientIdentifier]

        let request = Request(URL: URL, method: .GET, parameters: parameters, parse: {


        let request = Request(URL: URL, method: .GET, parameters: parameters, parse: { JSON -> Result<PaginatedAPIResponse<Track>, SoundcloudError> in
            return .Success(PaginatedAPIResponse(JSON, parse: parse))
        }) { result in
            completion(result.result!)
        }
        request.start()
    }

    /**
     Loads followers of the user

     - parameter completion: The closure that will be called when followers are loaded or upon error
     */
    public func followers(completion: PaginatedAPIResponse<User> -> Void) {
        User.followers(identifier, completion: completion)
    }

    /**
     Loads followers of the user

     - parameter userIdentifier: The user identifier
     - parameter completion: The closure that will be called when followers are loaded or upon error
     */
    public static func followers(userIdentifier: Int, completion: PaginatedAPIResponse<User> -> Void) {
        guard let clientIdentifier = Soundcloud.clientIdentifier else {
            completion(PaginatedAPIResponse(.CredentialsNotSet))
            return
        }

        let URL = User.BaseURL.URLByAppendingPathComponent("\(userIdentifier)/followers.json")
        let parameters = ["client_id": clientIdentifier, "linked_partitioning": "true"]

        let parse = { (JSON: JSONObject) -> Result<[User], SoundcloudError> in
