def add_headers(width=80, title='Untitled', subtitle='', author='', email=
    '', description='', tunings=None):
    """Create a nice header in the form of a list of strings using the
    information that has been filled in.

    All arguments except 'width' and 'tunings' should be strings. 'width'
    should be an integer and 'tunings' a list of tunings representing the
    instruments.
    """
    if tunings is None:
        tunings = []
    result = ['']
    title = str.upper(title)
    result += [str.center('  '.join(title), width)]
    if subtitle != '':
        result += ['', str.center(str.title(subtitle), width)]
    if author != '' or email != '':
        result += ['', '']
        if email != '':
            result += [str.center('Written by: %s <%s>' % (author, email),
                width)]
        else:
            result += [str.center('Written by: %s' % author, width)]
    if description != '':
        result += ['', '']
        words = description.split()
        lines = []
        line = []
        last = 0
        for word in words:
            if len(word) + last < width - 10:
                line.append(word)
                last += len(word) + 1
            else:
                lines.append(line)
                line = [word]
                last = len(word) + 1
        lines.append(line)
        for line in lines:
            result += [str.center(' '.join(line), width)]
    if tunings != []:
        result += ['', '', str.center('Instruments', width)]
        for i, tuning in enumerate(tunings):
            result += ['', str.center('%d. %s' % (i + 1, tuning.instrument),
                width), str.center(tuning.description, width)]
    result += ['', '']
    return result
