def METHOD_NAME(self, channel_type, *args, **kwargs):
    '''
    @param orientation = tk.VERTICAL : Either tk.VERTICAL or tk.HORIZONTAL
    @param name = "" : name of the channel
    @param x = 0 : x location in the frame
    @param y = 0: y location in the frame
    @param length = 100: length of the representation of the scale
    @param add_key_binding = 'a' : which button press adds to the channel
    @param sub_key_binding = 'z' : which button press subtracts from the channel
    @param key_binding = 'q' : which button press activates the button
    '''
    print "adding channels {}".format(channel_type.__name__)
    #kwarg unpacking
    orientation = 0
    name = ""
    x = 0
    y = 0
    length = 100
    if 'orientation' in kwargs:
        orientation = kwargs['orientation']
    else:
        orientation = tk.VERTICAL
    if 'name' in kwargs:
        name = kwargs['name']
    if 'x' in kwargs:
        x = kwargs['x']
    if 'y' in kwargs:
        y = kwargs['y']
    if 'length' in kwargs:
        length = kwargs['length']
    #channel adding
    if channel_type.__name__ == 'bi_switch':
        self.channels.append(channel_type(self.num_of_channels, orientation, name, length, self))
        if 'key_binding' in kwargs:
            self.channels[self.num_of_channels].bind = kwargs['key_binding']
            _key_bindings_[kwargs['key_binding']] = (self.num_of_channels, 1)
    elif channel_type.__name__ == 'tri_switch':
        self.channels.append(channel_type(self.num_of_channels, orientation, name, length, self))
        if 'add_key_binding' in kwargs:
            self.channels[self.num_of_channels].bind = kwargs['add_key_binding']
            _key_bindings_[kwargs['add_key_binding']] = (self.num_of_channels, 1)
        if 'sub_key_binding' in kwargs:
            self.channels[self.num_of_channels].bind = kwargs['sub_key_binding']
            _key_bindings_[kwargs['sub_key_binding']] = (self.num_of_channels, -1)
    elif channel_type.__name__ == 'trigger_switch':
        self.channels.append(channel_type(self.num_of_channels, orientation, name, length, self))
        if 'key_binding' in kwargs:
            self.channels[self.num_of_channels].bind = kwargs['key_binding']
            _key_bindings_[kwargs['key_binding']] = (self.num_of_channels, 1)
    elif channel_type.__name__ == 'dial':
        self.channels.append(channel_type(self.num_of_channels, args[0], orientation, name, length, self))
        if 'add_key_binding' in kwargs:
            self.channels[self.num_of_channels].bind = kwargs['add_key_binding']
            _key_bindings_[kwargs['add_key_binding']] = (self.num_of_channels, 1)
        if 'sub_key_binding' in kwargs:
            self.channels[self.num_of_channels].bind = kwargs['sub_key_binding']
            _key_bindings_[kwargs['sub_key_binding']] = (self.num_of_channels, -1)
    elif channel_type.__name__ == 'stick':
        self.channels.append(channel_type(self.num_of_channels, orientation, name, length, self))
        if 'add_key_binding' in kwargs:
            self.channels[self.num_of_channels].bind = kwargs['add_key_binding']
            _key_bindings_[kwargs['add_key_binding']] = (self.num_of_channels, 1)
        if 'sub_key_binding' in kwargs:
            self.channels[self.num_of_channels].bind = kwargs['sub_key_binding']
            _key_bindings_[kwargs['sub_key_binding']] = (self.num_of_channels, -1)
    self.channels[self.num_of_channels].pack()
    self.channels[self.num_of_channels].place(x = x, y=y)
    self.num_of_channels += 1