         productIdentifiers = Set<String>()
     }
     
+    /**
+        Add a single product ID
+    
+        - Parameter id: Product ID in string format
+    */
     public func addProductId(id: String) {
         productIdentifiers?.insert(id)
     }
     
+    /**
+        Add multiple product IDs
+    
+        - Parameter ids: Set of product ID strings you wish to add
+    */
     public func addProductIds(ids: Set<String>) {
         productIdentifiers?.unionInPlace(ids)
     }
     
+    /**
+        Load purchased products
+    
+        - Parameter checkWithApple: True if you want to validate the purchase receipt with Apple servers
+    */
     public func loadPurchasedProducts(checkWithApple: Bool, completion: ((valid: Bool) -> Void)?) {
         
         if let productIdentifiers = productIdentifiers {

    
    //MARK: - Helpers
    
    public func canMakePurchase() -> Bool {
        return SKPaymentQueue.canMakePayments()
    }
    
    public class func formatPrice(price: NSNumber, locale: NSLocale) -> String {
        var formattedString = ""
        

        
    }
    
    /**
        Initiate purchase for the product
    
        - Parameter product: The product you want to purchase
    */
    public func purchaseProduct(product: SKProduct) {
        print("Purchasing product: \(product.productIdentifier)")
        let payment = SKPayment(product: product)
        SKPaymentQueue.defaultQueue().addPayment(payment)
    }
    
    /**
        Check if the product with identifier is already purchased
    */
    public func productPurchased(productIdentifier: String) -> Bool {
        return purchasedProductIdentifiers.contains(productIdentifier)
    }
    
    /**
        Begin to start restoration of already purchased products
    */
    public func restoreCompletedTransactions() {
        SKPaymentQueue.defaultQueue().restoreCompletedTransactions()
    }
