Add Javadoc.  Move interface and implementation of filter into respective individual files.