 User.prototype.constructor = User
 User.constructor = User
 
+class Client extends SnapbillObject
+    @type: 'client'
+
+Client.prototype.constructor = Client
+Client.constructor = Client
+
+
 snapbill =
-    User: User
-    Snapbill: Snapbill
-    SnapbillObject: SnapbillObject
+    User           :User
+    Client         :Client
+    Snapbill       :Snapbill
+    SnapbillObject :SnapbillObject
 
 if exports?
     exports = snapbill


        return cache[typeName][objectData.id]

    @list: (snapbill, params, callback) ->
        snapbill.request "POST", "/v1/#{@type}/list", params, (requestData, error) =>
            if error?

        console.log "EPIC FAIL #{error}"

    request: (type, url, params, callback) ->
        console.log "Requesting at #{url} with params #{params}"
        params = Snapbill.encode_params params
        if typeof XMLHttpRequest != 'undefined'
            request = new XMLHttpRequest()
            request.onload = =>
                if request.readyState is 4
                    if 2 is Math.floor request.status / 100
                        console.log "we got data home boy #{request.responseText}"
                        callback JSON.parse request.responseText
                    else
                        error = "Request to #{url} failed with request code #{request.status}"
