uglier, but easier to customize way to customize the typeahead