Implement most of filter protocol to close #9.