def components_in(containers):
    """ given a list of containers, return the components within """
    components = []
    for container in containers:
        instances = container.components()
        components.extend(instances)
        subcontainers = container.containers()
        components.extend(components_in(subcontainers))

    return components