pulled out helper function, added disjoin