Add project 2 files and implement Predicate and JoinPredicate