def METHOD_NAME(self, type_, **kwargs):
    """
    Banana banana
    """
    unique_name = kwargs.get('unique_name')
    if not unique_name:
        unique_name = kwargs.get('display_name')
        kwargs['unique_name'] = unique_name
    filename = kwargs.get('filename')
    if filename:
        filename = os.path.abspath(filename)
        kwargs['filename'] = os.path.abspath(filename)
    if unique_name in self.__symbols and not type_ == ProxySymbol:
        warn('symbol-redefined', "%s(unique_name=%s, filename=%s, project=%s)"
             " has already been defined: %s" % (type_.__name__, unique_name, filename,
                                                kwargs.get('project_name'),
                                                self.get_symbol(unique_name)))
        return None
    aliases = kwargs.pop('aliases', [])
    alias_symbols = []
    for alias in aliases:
        alias_symbols.append(
            self.METHOD_NAME(ProxySymbol,
            unique_name=alias,
            target=unique_name))
    symbol = type_()
    debug('Created symbol with unique name %s' % unique_name,
          'symbols')
    for key, value in list(kwargs.items()):
        setattr(symbol, key, value)
    symbol.aliases += alias_symbols
    if not isinstance(symbol, ProxySymbol):
        self.__symbols[unique_name] = symbol
    self.__aliased[unique_name].extend(aliases)
    for alias in self.__aliased[unique_name]:
        self.__aliases[alias] = symbol
    return symbol