abstract auto complete