squashed - refactor to cope with sub sub N relations probably using the sub_relations method recursively.