     }
     
     public func valueForKey<A: ValueType>(key: KeyType) throws -> A {
-        let any = try anyForKey(key)
+        let any = try self.anyForKey(key)
         do {
             guard let result = try A.value(any) as? A else {
                 throw Error.TypeMismatchWithKey(key: key.stringValue, expected: A.self, actual: any.dynamicType)

    }
    
    public func valueForKey<A: ValueType>(key: KeyType) throws -> Set<A> {
        let any = try anyForKey(key)
        do {
            return try Set<A>.value(any)
        }

    }
    
    public func valueForKey<A: ValueType>(key: KeyType) throws -> [A] {
        let any = try self.anyForKey(key)
        do {
            return try Array<A>.value(any)
        }
