     
     :returns: NSMutableURLRequest object to request your access token.
     */
-    class func requestForOAuth2AppOnly(#username:String, password:String, clientID:String, secret:String) -> NSMutableURLRequest {
+    public class func requestForOAuth2AppOnly(#username:String, password:String, clientID:String, secret:String) -> NSMutableURLRequest {
         var URL = NSURL(string: "https://ssl.reddit.com/api/v1/access_token")!
         var request = NSMutableURLRequest(URL:URL)
         request.setRedditBasicAuthentication(username:clientID, password:secret)

OAuth2Token extension to authorize without a user context.
This class is private and for only unit testing because "Installed app" is prohibited from using "Application Only OAuth" scheme, that is without user context.
*/
class OAuth2AppOnlyToken : OAuth2Token {
    override func encodeWithCoder(aCoder: NSCoder) {
        super.encodeWithCoder(aCoder)
    }
    
    required init(coder aDecoder: NSCoder) {
        super.init(coder:aDecoder)
    }
    
    override init(accessToken:String, tokenType:String, expiresIn:Int, scope:String, refreshToken:String) {
        super.init(accessToken: accessToken, tokenType: tokenType, expiresIn: expiresIn, scope: scope, refreshToken: refreshToken)
    }
    

    
    :returns: Result object. If succeeded, it includes OAuth2AppOnlyToken with a new access token.
    */
    public class func tokenWithJSON(json:JSON) -> Result<OAuth2AppOnlyToken> {
        var token:OAuth2AppOnlyToken? = nil
        if let temp1 = json["access_token"] as? String,
            temp2 = json["token_type"] as? String,
