def METHOD_NAME(self, stmts):
    """Generate statements by expanding members of families and complexes.
    """
    new_stmts = []
    for stmt in stmts:
        # Put together the lists of families, with their members. E.g.,
        # for a statement involving RAF and MEK, should return a list of
        # tuples like [(BRAF, RAF1, ARAF), (MAP2K1, MAP2K2)]
        families_list = []
        for ag in stmt.agent_list():
            if ag is None:
                families_list.append([ag])
            else:
                db_ns, db_id = ag.get_grounding()
                if db_ns == 'FPLX':
                    child_agents = expand_agent(ag,
                                                ontology=self.ontology,
                                                ns_filter={'HGNC'})
                    if child_agents:
                        families_list.append(child_agents)
                        continue
                families_list.append([ag])
        # Now, put together new statements from the cross product of the
        # expanded family members
        for ag_combo in itertools.product(*families_list):
            # Create a copy of the statement
            new_stmt = deepcopy(stmt)
            # Replace the agents in the statement with the newly-created
            # child agents
            new_stmt.set_agent_list(list(ag_combo))
            # Add to list
            new_stmts.append(new_stmt)
    return new_stmts