based on arale autocomplete, but make some changes.