way cleaner, and add vi mode for bash