def METHOD_NAME(self, document):
    ev = self.get_evidence(document)
    stmts = []
    for interaction in self.find_interactions(document['elements']):
        groups = defaultdict(list)
        for entry in interaction['entries']:
            groups[entry['group']].append(
                self.agent_from_element(
                    self.find_element(document['elements'], entry['id'])
                )
            )
        groups = dict(groups)
        if interaction['type'] in mod_types:
            stmt_type = interaction_types[interaction['type']]
            enz = groups[None][0] if None in groups else None
            sub = None
            act_inh_stmt = None
            for polarity in {'positive', 'unsigned', 'negative'}:
                if polarity in groups:
                    if polarity == 'positive':
                        act_inh_stmt = Activation
                    elif polarity == 'negative':
                        act_inh_stmt = Inhibition
                    sub = groups[polarity][0]
                    break
            if sub and enz:
                stmt = stmt_type(deepcopy(enz),
                                 deepcopy(sub),
                                 evidence=deepcopy(ev))
                stmts.append(stmt)
                if act_inh_stmt:
                    stmt = act_inh_stmt(deepcopy(enz),
                                        deepcopy(sub),
                                        evidence=deepcopy(ev))
                    stmts.append(stmt)
        elif interaction['type'] == 'transcription-translation':
            subj = groups[None][0] if None in groups else None
            obj = None
            for polarity in {'positive', 'unsigned', 'negative'}:
                if polarity in groups:
                    obj = groups[polarity][0]
                    break
            else:
                polarity = None
            if polarity == 'positive':
                stmt_type = IncreaseAmount
            elif polarity == 'negative':
                stmt_type = DecreaseAmount
            if subj and obj and polarity:
                stmt = stmt_type(deepcopy(subj),
                                 deepcopy(obj),
                                 evidence=deepcopy(ev))
                stmts.append(stmt)
        elif interaction['type'] == 'binding':
            members = flatten(list(groups.values()))
            stmt = Complex(deepcopy(members),
                           evidence=deepcopy(ev))
            stmts.append(stmt)
    return stmts