         return bucketize(array: array, exp: power(base: 10, power: maxDigits))
     }
 
+
+    // MARK: Utility Methods
+
     func bucketize (array: [Int], exp: Int) -> [Int] {
+        // In the case we are done traversing the digits, exit method
         if(countDigits(number: exp) <= 0) {
             return array
         }
+
+        // Initialize the array we want to store our results in, as well as the buckets
         var resultArray = [Int]()
         var buckets = Dictionary<Int, [Int]>()
+
+        // Take all numbers in the array and put them in their respective buckets
         for number in array {
-            //buckets[(number/exp)%10] = buckets[(number/exp)%10] ? (buckets[(number/exp)%10]! + [number]) : [number]
             if buckets[(number/exp)%10] != nil {
                 buckets[(number/exp)%10]! += [number]
             } else {

        return digitCount
    }

    func power(base: Int, power: Int) -> Int {
        var number = base
        for _ in 0..<power {

            }
        }

        /* Once done filling buckets, traverse the buckets in ascending order
        ** and recursively sort them, then add the buckets to the result array
        */
        for index in 0..<10 {
            if buckets[index] != nil {
                resultArray += bucketize(array: buckets[index]!, exp: exp/10)
            }
