implemented basic tab completion