started work on predicates
cleaned up implicits