def do_connect(self, cmd):
        """connect <id> <type> [args]: opens a new interface."""
        args = shlex.split(cmd)
        if len(args) < 2:
            self.stdout.write(Text("Error: expected at least 2 arguments!\n", "red"))
            return
        ID, name = args[0], args[1]
        if len(args) > 2:
            args_to_pass = tuple(args[2:])
        else:
            args_to_pass = ()
        if ID in self.FSIs:
            self.stdout.write(Text("Error: ID already registered!\n", "red"))
            return
        if name not in INTERFACES:
            self.stdout.write(Text("Error: FSI not found!\n", "red"))
            return
        self.stdout.write("Creating Interface... ")
        fsic = INTERFACES[name]
        fsi = fsic(self.stdout.write)
        self.stdout.write(Text("Done", "green"))
        self.stdout.write(".\nConnecting... ")
        try:
            state = fsi.connect(*args_to_pass)
        except OperationFailure as e:
            self.stdout.write(Text("Error: {e}!\n".format(e=e.message), "red"))
            return
        if state is True:
            self.FSIs[ID] = fsi
            self.stdout.write(Text("Done", "green"))
            self.stdout.write(".\n")
        elif isinstance(state, str):
            self.stdout.write(Text("Error: {e}!\n".format(e=state), "red"))
        else:
            self.stdout.write(Text("Error: cannot interpret return-Value of connect()!\n", "red"))
            return
connect <id> <type> [args]: opens a new interface.
bin/mc.py