some refactoring
add missing methods
use class atributes instead of queue

Store completer results in completer class atribute. This is better
because when using Queue single completer can add multiple completion
results into queue
small fixes