def apply_filters(o)
      @filters.keys.find_all{|type| Splib.type_of?(o, type)}.each do |type|
        @filters[type].each_pair do |k,v|
          begin
            case k
            when :filters
              v.each{|f|o = f.filter(o)}
            when :procs
              v.each{|pr|o = pr.call(o)}
            end
          rescue ArgumentError
            # ignore this
          end
        end
      end
      o
    end
def apply_filters(o)
      @filters.keys.find_all{|type| Splib.type_of?(o, type)}.each do |type|
        @filters[type].each_pair do |k,v|
          begin
            case k
            when :filters
              v.each{|f|o = f.filter(o)}
            when :procs
              v.each{|pr|o = pr.call(o)}
            end
          rescue ArgumentError
            # ignore this
          end
        end
      end
      o
    end
o:: Object to apply filters to
 Applies any Filters applicable to object type