implemented auto complete