add the yoneda lemma