initial checkin of new filter
tweaks for new filter, making library more intuitive, reducing code duplication