Start and implement Predicates; refactor some code