tests
unused stuff
Keeping it simple.

Since lambdas helps a lot in predicates, there is no reason to maintain tons of methods that are used to simplify the use of anonymous classes.

Everything now is centred in a "filter" method and the classes are turned to be immutable.
Tests compatible with the huge changes
organizing predicates
unused stuff
code improvements
docs
docs