Start of work to support filters.  This is currently broken, and will require a common base class