Refactored parsers and predicates into first class objects.