Separated Filters from Elements.
renamed filter objects.
Changed matching strategy so only unmatched filter elements are rematched.