improved completer