hmm, do we really need transitivity?