Merge pull request #29 from ThePumpingLemma/master

Fix a typo.
Introduce an interface for list filters and use that in place of the enum.
Refactor some of the code to makethe naming a little less confusing.
Merge remote-tracking branch 'upstream/master'