         return nil
     }
     
-    class func filter<T>(array: [T], function: (T) -> Bool) -> [T]
+    public class func filter<T>(array: [T], function: (T) -> Bool) -> [T]
     {
         return array.filter(function)
     }
     
-    class func _where<KT, VT: Equatable>(array: Array<Dictionary<KT, VT>>, predicate: Dictionary<KT, VT>) -> [Dictionary<KT, VT>]
+    public class func _where<KT, VT: Equatable>(array: Array<Dictionary<KT, VT>>, predicate: Dictionary<KT, VT>) -> [Dictionary<KT, VT>]
     {
         var result: [Dictionary<KT, VT>] = []
         for (index, elem: (Dictionary<KT, VT>)) in enumerate(array)

        return result
    }
    
    class func reduce<T, M>(array: [T], start: M, function: ((M), (T)) -> M) -> M
    {
        return array.reduce(start, function)
    }
    
    class func find<T>(array: [T], function: (T) -> Bool) -> T?
    {
        for (index, elem: (T)) in enumerate(array)
        {

        return result
    }
    
    public class func findWhere<KT, VT: Equatable>(array: Array<Dictionary<KT, VT>>, predicate: Dictionary<KT, VT>) -> Dictionary<KT, VT>?
    {
        for (index, elem: (Dictionary<KT, VT>)) in enumerate(array)
        {
