More encapsulation; changed filter interface