implement Completer subclass GeneralCompleter
more comments
switch to QueryLengthAboveMinThreshold method
rename some variables to avoid name conflicts