 	}
 }
 
-struct MMPostEmailRequest: MMHTTPRequestData {
+struct MMPostEmailRequest: MMHTTPPostRequest {
 	typealias ResponseType = MMHTTPSaveEmailResponse
 	
-	var method: MMHTTPMethod { return .POST }
 	var path: MMHTTPAPIPath { return .Email }
 	var parameters: [String: AnyObject]? { return [MMAPIKeys.kInternalRegistrationId: internalId, MMAPIKeys.kEmail: email] }
 	var email: String

	}
}

struct MMPostDeliveryReportRequest: MMHTTPRequestData {
	typealias ResponseType = MMHTTPDeliveryReportingResponse
	
	var method: MMHTTPMethod { return .POST }
	var path: MMHTTPAPIPath { return .DeliveryReport }
	var parameters: [String: AnyObject]? { return [MMAPIKeys.kMessageIDs: messageIDs] }
	var messageIDs: [String]

	}
}

struct MMPostRegistrationRequest: MMHTTPPostRequest {
	typealias ResponseType = MMHTTPRegistrationResponse
	
	var retryLimit: Int { return 3 }
	var path: MMHTTPAPIPath { return .Registration }
    var parameters: [String: AnyObject]? {
        var params = [MMAPIKeys.kRegistrationId: currentDeviceToken,
