         // yay protocol conformance
     }
 
-    public init(countedSet: CountedSet<T>) {
+    public init(object: Element) {
+        insert(object)
+    }
+
+    public init(countedSet: CountedSet<Element>) {
         backingDictionary = countedSet.backingDictionary
-    }
-
-    public func countForObject(object: Element) -> Int {
-        return backingDictionary[object] ?? 0
     }
 
     public init(arrayLiteral elements: CountedSet.Element...) {

        for member in sequence {
            insert(member)
        }
    }

    public func contains(member: CountedSet.Element) -> Bool {

//  Copyright © 2015 0x7fffffff. All rights reserved.
//

public struct CountedSet<T : Hashable> : SetAlgebraType {
    typealias Element = T
    typealias Index = SetIndex<Element>
    typealias GeneratorType = SetGenerator<Element>

    private var backingDictionary = [Element : Int]()

    public var count: CountedSet.Index.Distance {
        return backingDictionary.count
    }

