disjoinable is now it's own interface