basic autocomplete framework