adding case-insensitive tab completion, and context aware command history