components merger