added completer (still needs work)