def __init__(self):
        GObject.threads_init()

        # sets up telnet interface
        self.telnet_controller = MeltedTelnetController(
            Smelted_Settings.HOST, Smelted_Settings.PORT)
        self.melted_telnet_polling_controller = MeltedTelnetPollingController(
            Smelted_Settings.HOST, Smelted_Settings.PORT)

        # Sets up GUI with pygtk and their event listeners
        self.main_interface_controller = MainInterfaceController(
            self, self.telnet_controller)
        main_interface_controller = MainInterfaceView.MainInterfaceView(
            self.main_interface_controller)

        # manages melted units, existing units and their clips
        self.initialise_units_controller = InitialiseUnitsController(
            self, self.telnet_controller, self.on_loaded_from_telnet)

        # manages playlist file manipulation import/export
        self.playlist_file_controller = PlaylistFileController(
            self, self.telnet_controller)

        self.units_controller = UnitsController(self, self.telnet_controller)

        self.start_load_wait()